memcached常用命令说明

jerry linux 2015年11月23日 收藏

一、存储

存储命令式:

  1. <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

  1. set userid 0 0 3
  2. 123
  3. STORED

2、add 仅当缓存中不存在键时,add命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同, 并且您将获得响应NOT_STORED

  1. add userid 0 0 3
  2. 234
  3. NOT_STORED
  4.  
  5. add useraddress 0 0 8
  6. hangzhou
  7. STORED

3、replace 仅当键已经存在时,replace命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。

  1. replace userid 0 0 3
  2. 234
  3. STORED
  4.  
  5. replace province 0 0 8
  6. zhejiang
  7. NOT_STORED

4、append 仅当键已经存在时,append命令才会在存在的值添加值。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。

  1. append userid 0 0 1
  2. 5
  3. STORED
  4.  
  5. append province 0 0 8
  6. jiangshu
  7. NOT_STORED

5、prepend 仅当键已经存在时,append命令才会在存在的值添加值。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条NOT_STORED响应。

  1. prepend province 0 0 5
  2. anhui
  3. NOT_STORED
  4.  
  5. prepend userid 0 0 1
  6. 6
  7. STORED

二、读取

读取的命令格式:

  1. <command name> <key>

服务端返回:

  1. VALUES<exptime> <bytes><data block>

1、get get命令的key可以表示一个或者多个键,键之间以空格隔开

  1. get username userid
  2. VALUE username 0 12
  3. hahahahahaha
  4. VALUE userid 0 5
  5. 62345

2、gets gets命令的功能类似于基本的get命令。两个命令之间的差异在于,gets返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。

  1. gets username userid
  2. VALUE username 0 12 6
  3. hahahahahaha
  4. VALUE userid 0 5 12
  5. 62345

gets命令将返回一个额外的值 — 在本例中是整型值6和12,用于标识名称/值对。如果对此名称/值对执行另一个set命令,则gets返回的额外值将会发生更改。

  1. set userid 0 0 5
  2. 12345
  3. STORED
  4. gets userid
  5. VALUE userid 0 5 13
  6. 12345

返回值已经被更改为13了,每次修改名称/值对时,该值都会发生更改。

三、删除

删除命令格式:

  1. <command name> <key>

delete delete命令用于删除 memcached 中的任何现有值。使用一个键调用delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND消息。

  1. delete userid
  2. DELETED
  3. delete name
  4. NOT_FOUND

四、状态

1、stats 显示服务器信息、统计数据等。

  1. STAT pid 3581 --memcached进程号
  2. STAT uptime 5272 --memcached server自启动到现在的时间(秒)
  3. STAT time 1342743071 --当前UNIX的时间
  4. STAT version 1.4.13 --memcached server的版本号
  5. STAT libevent 1.4.13-stable
  6. STAT pointer_size 32 --操作系统默认的指针大小
  7. STAT rusage_user 0.020996
  8. STAT rusage_system 0.172973
  9. STAT curr_connections 5 --当前的客户端连接数
  10. STAT total_connections 0 --server从启动到现在,累计的客户端连接数
  11. STAT connection_structures 6 --server分配的连接结构数
  12. STAT reserved_fds 20
  13. STAT cmd_get 0 --memcached读次数
  14. STAT cmd_set 0 --memcached写次数
  15. STAT cmd_flush 0
  16. STAT cmd_touch 0
  17. STAT get_hits 0 --memcached读缓存未命中次数
  18. STAT get_misses 0 --memcached读缓存命中次数
  19. STAT delete_misses 0
  20. STAT delete_hits 0
  21. STAT incr_misses 0
  22. STAT incr_hits 0
  23. STAT decr_misses 0
  24. STAT decr_hits 0
  25. STAT cas_misses 0
  26. STAT cas_hits 0
  27. STAT cas_badval 0
  28. STAT touch_hits 0
  29. STAT touch_misses 0
  30. STAT auth_cmds 0
  31. STAT auth_errors 0
  32. STAT bytes_read 62 --从cache中读取的总字节数
  33. STAT bytes_written 1200 --写入cache的总字节数
  34. STAT limit_maxbytes 314572800 --该memcached server分配的最大内存数量
  35. STAT accepting_conns 1
  36. STAT listen_disabled_num 0
  37. STAT threads 4
  38. STAT conn_yields 0
  39. STAT hash_power_level 16
  40. STAT hash_bytes 262144
  41. STAT hash_is_expanding 0
  42. STAT expired_unfetched 0
  43. STAT evicted_unfetched 0
  44. STAT bytes 138
  45. STAT curr_items 2 --当前存储的item数目
  46. STAT total_items 0 --erver从启动到现在,总共累计存储的item数目
  47. STAT evictions 0
  48. STAT reclaimed 0

平均每秒请求获取缓存的次数 = cmd_get / uptim 缓存命中率 = get_hits/cmd_get * 100% cmd_get = get_misses + get_hits

2、stats items 显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)