一、存储
存储命令的格式:
<command name> <key> <flags> <exptime> <bytes><data block>
参数说明如下:
命令 用法
<command name> set/add/replace/append/preappend
<key> key 用于查找缓存值
<flags> 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
<exptime> 该数据的存活时间,0表示永远
<bytes> 存储字节数
<data block> 存储的数据块(可直接理解为key-value结构中的value)
1、set
set命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换,实现了更新的作用。如果成功,服务器将会返回STORED。
set userid 0 0 3 123 STORED
2、add
仅当缓存中不存在键时,add命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,
并且您将获得响应NOT_STORED。
add userid 0 0 3 234 NOT_STORED add useraddress 0 0 8 hangzhou STORED
3、replace
仅当键已经存在时,replace命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。
replace userid 0 0 3 234 STORED replace province 0 0 8 zhejiang NOT_STORED
4、append
仅当键已经存在时,append命令才会在存在的值后添加值。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。
append userid 0 0 1 5 STORED append province 0 0 8 jiangshu NOT_STORED
5、prepend
仅当键已经存在时,append命令才会在存在的值前添加值。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。
prepend province 0 0 5 anhui NOT_STORED prepend userid 0 0 1 6 STORED
二、读取
读取的命令格式:
<command name> <key>
服务端返回:
VALUES<exptime> <bytes><data block>
1、get
get命令的key可以表示一个或者多个键,键之间以空格隔开
get username userid VALUE username 0 12 hahahahahaha VALUE userid 0 5 62345
2、gets
gets命令的功能类似于基本的get命令。两个命令之间的差异在于,gets返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
gets username userid VALUE username 0 12 6 hahahahahaha VALUE userid 0 5 12 62345
gets命令将返回一个额外的值 — 在本例中是整型值6和12,用于标识名称/值对。如果对此名称/值对执行另一个set命令,则gets返回的额外值将会发生更改。
set userid 0 0 5 12345 STORED gets userid VALUE userid 0 5 13 12345
返回值已经被更改为13了,每次修改名称/值对时,该值都会发生更改。
三、删除
删除命令格式:
<command name> <key>
delete
delete命令用于删除 memcached 中的任何现有值。使用一个键调用delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND消息。
delete userid DELETED delete name NOT_FOUND
四、状态
1、stats
显示服务器信息、统计数据等。
STAT pid 3581 --memcached进程号 STAT uptime 5272 --memcached server自启动到现在的时间(秒) STAT time 1342743071 --当前UNIX的时间 STAT version 1.4.13 --memcached server的版本号 STAT libevent 1.4.13-stable STAT pointer_size 32 --操作系统默认的指针大小 STAT rusage_user 0.020996 STAT rusage_system 0.172973 STAT curr_connections 5 --当前的客户端连接数 STAT total_connections 0 --server从启动到现在,累计的客户端连接数 STAT connection_structures 6 --server分配的连接结构数 STAT reserved_fds 20 STAT cmd_get 0 --memcached读次数 STAT cmd_set 0 --memcached写次数 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 0 --memcached读缓存未命中次数 STAT get_misses 0 --memcached读缓存命中次数 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 62 --从cache中读取的总字节数 STAT bytes_written 1200 --写入cache的总字节数 STAT limit_maxbytes 314572800 --该memcached server分配的最大内存数量 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 262144 STAT hash_is_expanding 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT bytes 138 STAT curr_items 2 --当前存储的item数目 STAT total_items 0 --erver从启动到现在,总共累计存储的item数目 STAT evictions 0 STAT reclaimed 0
平均每秒请求获取缓存的次数 = cmd_get / uptim
缓存命中率 = get_hits/cmd_get * 100%
cmd_get = get_misses + get_hits
2、stats items
显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)