Java 如何遍历 MC 所有 ITEM
1 、 mc 遍历 item 原理
Mc 遍历 item 用到的命令有三个: stats items , stats cachedump, get 。通过 telnet 程序 telnet 到 mc 服务器上( telnet ip 地址 端口号,如 telnet 192.168.0.1 11211 ),依次执行上述 3 个命令即可遍历 mc 的 item 对象,及查看 key 对应的 value 值。
1) stats items :显示各个 slab 中 item 的数目和最老 item 的年龄 ( 最后一次访问距离现在的秒数 )
stats items STAT items:1:number 2 STAT items:1:age 847 STAT items:4:number 1 STAT items:4:age 831 STAT items:10:number 1 STAT items:10:age 830 END |
2 ) stats cachedump :
stats cachedump slab_id limit_num ,显示某个 slab 中的前 limit_num 个 key 列表,显示格式如下:
ITEM key_name [ value_length b; expire_time|access_time s]
其中, memcached 1.2.2 及以前版本显示的是访问时间 (timestamp) , 1.2.4 以上版本,包括 1.2.4 显示 过期时间 (timestamp) ,如果是永不过期的 key , expire_time 会显示为服务器启动的时间。
下述脚本为现实上述 item 1 下的所有 key 值,如 2248.516289644596
stats cachedump 1 0 ITEM 2248.516289644596 [4 b; 1257986909 s] ITEM 3626.4522262678565 [4 b; 1257986895 s] END |
至此,只要循环 1 )列出的 items 和 2 )下的具体每个 item 对应的所有 key ,即可遍历 mc 中存放的所有对象的 key 值,那么,只要 get 该 key 值,即可获取 key 对应的 value 值。
2 、 java 代码实现,待续