查看memcached的内容

有什么工具可以探索当前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版本中,还有memcached-tool perl脚本,例如:

     memcached-tool localhost:11211 dump | less 

    它会转储所有的键和值。

    memdump

    要从服务器转储密钥列表,请使用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的

    以下是使用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。