发表于: 2017-09-26 15:29:19
2 825
今天完成的事情:重装了memcache 原来的下的是64位有问题 重装了32位的
下载地址:http://pan.baidu.com/s/1hrJ9jE0 密码:spqc 下载压缩包
将对应版本的文件夹,放到e盘,ruanjian下 新建了memcache 解压到该文件夹
打开cmd E:进入D盘 cd ruanjian cd memcache
虽然没有任何提示 但是我们已经启动了memcache 可以看一下进程
我先用telnet来测试一下 这个我小课堂端口的时候讲过 需要安装一下
telnet localhost 11211(memcache默认端口)
这样就可以以客户端的身份连接memcached,对其进行查看和操作。
首先会进入一个空白界面,然后输入Ctrl+],进入另一个界面,然后回车,就可以直观的使用Memcache了
这里我是增加了一个age到缓存里 然后把它取出来 然后显示当前状态 具体各参数意义放在最后
然后在java里面使用memcache
首先我又重建了一个项目 task6
第一步当让是添加依赖 对比发现原来的pom文件缺少这三个要用的依赖
<dependency>
<groupId>com.danga</groupId>
<artifactId>memcached</artifactId>
<version>2.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>
还有一个需要的原本存在
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
又是memcached这个依赖远程仓库没有 下载下来自己导入
mvn install:install-file -Dfile=E:\jbao\java_memcached-release_2.6.6.jar -DgroupId=com.danga -DartifactId=memcached -Dversion=2.6.6 -Dpackaging=jar -DgeneratePom=true ok了
然后网上找了一个工具类
参考了一下 然后测试
可以看到能够成功 调用缓存
明天计划的事情:在任务五的基础上增加缓存调试
遇到的问题:在telnet 本地11211 的时候 出现问题 一直是error
还是使用的命令 有问题 重连一次 按照正确的命令就可以了
收获:
telnet下的memcache操作命令详解
telnet localhost 11211(memcache默认端口)
memcache写入操作
telnet写入memcache命令格式 <command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
参数详解:
1.<command name> 可以是”set”, “add”, “replace”。
set:<key>不存在时添加,<key>存在时覆盖。
add:<key>不存在时添加,<key>存在时则会操作失败。
replace:<key>不存在时添加失败,<key>存在时替换数据
2.<key> 保存数据的key
3.<flags>是一个16位的无符号的整数(以十进制的方式表示)。整型参数,客户机使用它存储关于键值对额外信息
该标志将和需要存储的数据一起存储,并在客户端get数据时返回。
客户可以将此标志用做特殊用途,此标志对服务器来说是透明的。
4.<exptime> 过期的时间。
0表示存储的数据永远不过时(但可被服务器算法:LRU 等替换)。
非0(unix时间),当过期后,服务器可以保证用户得不到该数据(以服务器时间为标准)。
5.<bytes> 需要存储的字节数(不包含最后的”\r\n”),当用户希望存储空数据时,可以为0
6. \r\n 我们一般直接回车 这里我理解为回车
7<data block> 存储的数据块(可直接理解为key-value结构中的value)
elnet响应命令
当以上数据发送结束之后,服务器将返回一个应答。可能有如下的情况:
1.STORED\r\n:表示存储成功
2.NOT_STORED\r\n: 表示存储失败,但是该失败不是由于错误。
> 通常这是由于”add”或者”replace”命令本身的要求所引起的,或者该项在删除队列之中。
获取Key&Value
获取命令格式 get <key>*\r\n
参数详解:1.<key>*: 表示一个或者多个key(以空格分开) 2.\r\n:命令结束
响应结果
服务器端将返回0个或者多个的数据项。每个数据项都是由一个文本行和一个数据块组成。当所有的数据项都接收完毕将收到END\r\n每一项的数据结构:
VALUE <key> <flags> <bytes>\r\n
<data block>
END
删除KeyValue: delete <key> <time>\r\n
检查Memcache服务器状态 stats
清空统计数据: stats reset
清空所有键值 flush_all
注意:flush并不会将items删除,只是将所有的items标记为expired,因此这时memcache依旧占用所有内存。
退出 quit 其实还有很多 比如启动命令 就有很多参数 可以 /? 来获取
更加详细的留在以后使用中学习吧
预计完成时间:9.29
是否有延期风险:暂无
禅道链接:http://task.ptteng.com/zentao/my-task.htm
评论