add : 将value存储到指定key中,若已存在,value不会覆盖,并获得响应 NOT_STORED,不存在返回STORED
add key flags exptime bytes [noreply]
value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
-
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远[这里说一种极端的方式,比如memcache挂了,再重启memcache服务,但这里面的数据就都不会存在了。我们在编译memcache的时候,使用了一个最长的常量,默认时间为30天,所以即使你设置为0,30天以后,它的数据也会失效。还有一种情况是可能我等不到这30天,就会被新的数据挤出去,这个就是永久数据被踢的这个现象 (LRU)])
-
bytes:在缓存中存储的字节数
-
noreply(可选): 该参数告知服务器不需要返回数据
-
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
add name 0 500 3
yhq
STORED
get name
VALUE name 0 3
yhq
END
add name 0 500 3
qhh
NOT_STORED
get name
VALUE name 0 3
yhq
END
add name_new 0 500 2
yhq
CLIENT_ERROR bad data chunk
ERROR
replace : 替换已存在的 key(键) 的 value(数据值),如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED
replace key flags exptime bytes [noreply]
value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
-
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
-
bytes:在缓存中存储的字节数
-
noreply(可选): 该参数告知服务器不需要返回数据
-
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
add name 0 100 3
yhq
STORED
get name
VALUE name 0 3
yhq
END
replace name 0 100 3
qhh
STORED
get name
VALUE name 0 3
qhh
END
get age
END
replace age 0 100 1
6
NOT_STORED
set : 将 value(数据值) 存储在指定的 key(键) 中,如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用,不存在相当于add
set key flags exptime bytes [noreply]
value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
-
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
-
bytes:在缓存中存储的字节数
-
noreply(可选): 该参数告知服务器不需要返回数据
-
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
get name
END
set name 0 100 3
yhq
STORED
get name
VALUE name 0 3
yhq
END
append : 向已存在 key(键) 的 value(数据值) 后面追加数据
append key flags exptime bytes [noreply]
value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
-
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
-
bytes:在缓存中存储的字节数
-
noreply(可选): 该参数告知服务器不需要返回数据
-
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
get name
END
add name 0 900 3
yhq
STORED
get name
VALUE name 0 3
yhq
END
append name 0 900 3
qhh
STORED
get name
VALUE name 0 6
yhqqhh
END
prepend : 向已存在 key(键) 的 value(数据值) 前面追加数据
prepend key flags exptime bytes [noreply]
value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
-
exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
-
bytes:在缓存中存储的字节数
-
noreply(可选): 该参数告知服务器不需要返回数据
-
value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)
add namebase 0 900 3
qhh
STORED
get namebase
VALUE namebase 0 3
qhh
END
prepend namebase 0 900 3
yhq
STORED
get namebase
VALUE namebase 0 6
yhqqhh
END
incr / decr : 对已存在的 key(键) 的数字值进行自增或自减操作(incr 与 decr 命令操作的数据必须是十进制的32位无符号整数)
incr key increment_value
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
increment_value: 增加的数值。
get number
END
set number 0 900 2
10
STORED
get number
VALUE number 0 2
10
END
incr number 5
15
decr number 5
10
get number
VALUE number 0 2
10
END
stats : 返回统计信息例如 PID(进程号)、版本号、连接数等
-
pid: memcache服务器进程ID
-
uptime:服务器已运行秒数
-
time:服务器当前Unix时间戳
-
version:memcache版本
-
pointer_size:操作系统指针大小
-
rusage_user:进程累计用户时间
-
rusage_system:进程累计系统时间
-
curr_connections:当前连接数量
-
total_connections:Memcached运行以来连接总数
-
connection_structures:Memcached分配的连接结构数量
-
cmd_get:get命令请求次数
-
cmd_set:set命令请求次数
-
cmd_flush:flush命令请求次数
-
get_hits:get命令命中次数
-
get_misses:get命令未命中次数
-
delete_misses:delete命令未命中次数
-
delete_hits:delete命令命中次数
-
incr_misses:incr命令未命中次数
-
incr_hits:incr命令命中次数
-
decr_misses:decr命令未命中次数
-
decr_hits:decr命令命中次数
-
cas_misses:cas命令未命中次数
-
cas_hits:cas命令命中次数
-
cas_badval:使用擦拭次数
-
auth_cmds:认证命令处理的次数
-
auth_errors:认证失败数目
-
bytes_read:读取总字节数
-
bytes_written:发送总字节数
-
limit_maxbytes:分配的内存总大小(字节)
-
accepting_conns:服务器是否达到过最大连接(0/1)
-
listen_disabled_num:失效的监听数
-
threads:当前线程数
-
conn_yields:连接操作主动放弃数目
-
bytes:当前存储占用的字节数
-
curr_items:当前存储的数据总数
-
total_items:启动以来存储的数据总数
-
evictions:LRU释放的对象数目
-
reclaimed:已过期的数据条目来存储新数据的数目
stats
STAT pid 26461
STAT uptime 1345
STAT time 1556316287
STAT version 1.5.13
STAT libevent 2.0.21-stable
STAT pointer_size 32
STAT rusage_user 0.353946
STAT rusage_system 0.300954
STAT max_connections 1024
STAT curr_connections 2
STAT total_connections 3
STAT rejected_connections 0
STAT connection_structures 3
STAT reserved_fds 20
STAT cmd_get 18
STAT cmd_set 9
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 12
STAT get_misses 6
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 1
STAT decr_misses 0
STAT decr_hits 1
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 516
STAT bytes_written 514
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 262144
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 1785
STAT lru_maintainer_juggles 2683
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT bytes 161
STAT curr_items 3
STAT total_items 8
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 1
STAT crawler_reclaimed 1
STAT crawler_items_checked 6
STAT lrutail_reflocked 8
STAT moves_to_cold 11
STAT moves_to_warm 4
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END
stats items : 显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数)
STAT items:1:number 3
STAT items:1:age 1698
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
STAT items:1:crawler_reclaimed 0
STAT items:1:crawler_items_checked 0
STAT items:1:lrutail_reflocked 0
END
stats cachedump slabs_id(由stats items返回的结果(STAT items后面的数字)决定的) limit_num(返回的记录数,0表示返回所有记录)
通过stats items、stats cachedump slab_id limit_num配合get命令可以遍历memcached的记录。
stats cachedump 1 0
ITEM userId [5 b; 1467903379 s]
ITEM accountId [5 b; 1467903379 s]
ITEM companyId [3 b; 1467903379 s]
END
stats cachedump 1 2
ITEM userId [5 b; 1467903379 s]
ITEM accountId [5 b; 1467903379 s]
END
delete : 删除已存在的 key
delete key [noreply]
参数说明如下:
-
key:键值 key-value 结构中的 key,用于查找缓存值。
-
noreply(可选): 该参数告知服务器不需要返回数据
add name 0 1000 3
yhq
STORED
get name
VALUE name 0 3
yhq
END
delete name
DELETED
get name
END