有什么工具可以探索当前caching在memcached池中的内容吗? 没有多less图表,但是当前存储的实际键/值。
尝试stats items
– 即
echo "stats items" | nc 127.0.0.1 11211
正确的答案是echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
echo "stats cachedump SLABS_ID LIMIT" | nc HOSTNAME PORT
例如。 echo "stats cachedump 15 4" | nc 127.0.0.1 11211
这将产生的输出如下:
ITEM cache_path-comments%2Fpage%2F2 [2211 b; 1337195558 s] ITEM cache_path-comments%2Fpage%2F5 [2205 b; 1337195558 s] ITEM cache_path-comments%2Fpage%2F6 [2179 b; 1337195558 s] ITEM cache_path-comments [2164 b; 1337195558 s] END
注意:这是memcached团队不支持的未公开的命令,可以在任何版本中删除。 有关完整的参考,请查看了解Memcached状态cachedump命令 。
在最近的memcached
版本中,还有memcached-tool
perl脚本,例如:
memcached-tool localhost:11211 dump | less
它会转储所有的键和值。
要从服务器转储密钥列表,请使用memdump
工具,例如
memdump --servers=localhost
转储所有对象:
memdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
要转储Bash shell中的所有键,请尝试:
exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
以下是使用netcat
获取单个项目的值的示例:
echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
尝试使用telnet
命令,例如:
$ telnet 0 11211 stats stats items set key 1 23 8 get key
安装libmemcached-tools
,然后你可以使用这个命令来获得所有的密钥:
memcdump --server=127.0.0.1
要查看内容,您可以要求一个特定的密钥:
memccat --server=127.0.0.1 SOME_KEY
或者你可以遍历Bash中的键列表:
for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memccat --server=127.0.0.1 $key; done
请确保使用127.0.0.1(如果您在同一主机上运行该命令),因为localhost
似乎不起作用。
在基本的memcached中,我不认为有任何方法来查询存储在服务器中的密钥。 唯一能想到的是与存储和存储项目相关的统计信息。
一些开发了兼容memcached的解决scheme的供应商,例如Gear6 ,已经增加了允许查询的function。