[ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.5.12 转载请注明原文链接:http://www.54chen.com/c/584 ]
本次讲座讲师是校内网高手张洁同学,主题是“memcached协议详解及java client分析比较”,java client分析比较线条化,只有在现场才能明白,此处只回顾memcached协议详解,为易于理解,标题段落有调整。
一.连接
安装好memcached,直接通过telnet localhost 11211连接。11211是memcache默认的端口。
二.协议
2.1store (存储)
(可用命令)set/add/replace/prepend/append
<command name> <key> <flags> <exptime> <bytes> [noreply]\r\n
exptime 只能精确到秒 例如:
set name 0 0 5<回车>
zhangjie<回车>
STORED 区别:set可能覆盖,add不能覆盖,prepend是续在前面,append是续在后面。
另:[noreply] 是新版中增加的标志,可以让服务器端不用返回。
2.2 cas(compare and set)
最新版的命令。目的保证执行的原子性。
例如:
cas some 0 0 10 2
意思是:检查some的值的版本是不是2,是2才把10存进去,
2.3 get/gets
get <key>*
get key1\r\n
get key1 key2 key3\r\n gets与get相比,返回结果会多一个版本号:
gets some
VALUE some 0 10 2
2008-03-20
END 2.4 delete(没得说的)
2.5 incr/decr(自增和自减)
2.6 stats(运行状态)
STAT curr_items 1
STAT total_items 7
STAT bytes 58
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT cmd_get 12
STAT cmd_set 11
STAT get_hits 8
STAT get_misses 4
三.两个java client
spymemcached
http://code..com/p/spymemcached
Java memcached client
http://www.whalin.com/memcached
关于环状的一致性hash很有意思,有时间研究研究。
原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]
捐赠说明