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