如何在memcache中查看数据?

Mik*_*ike 9 memcached

我已经安装了memcache,现在我如何真正查看memcache中的数据?

有没有办法在memcache中看到缓存中存在的数据?

我怎么知道memcache是​​否将数据存储在其中?

注意:我不想编写任何程序来查看memcache中的数据.基本上,memcache服务器已经安装在我的环境中,它也在缓存数据.但我想知道是否有任何可用的实用程序可以向我显示内存缓存中的缓存数据,或者是否有任何命令可以显示到目前为止缓存的数据.

Ste*_*eve 9

没有办法让memcached报告它所拥有的密钥.我认为这是一个设计选择,因为这样做会对性能产生负面影响.

但是,您可以使用任何telnet客户端应用程序连接memcached服务器并键入命令.执行此操作以获取或设置特定键.

例如,

stats
Run Code Online (Sandbox Code Playgroud)

要么:

get MY_KEY
Run Code Online (Sandbox Code Playgroud)


ken*_*orb 7

要从服务器转储密钥列表,请使用memdump工具(有时memcdump),例如

memdump --servers=localhost
Run Code Online (Sandbox Code Playgroud)

要获得项目的价值,请使用netcat:

echo "get 13456_-cache-some_object" | nc 127.0.0.1 11211
Run Code Online (Sandbox Code Playgroud)

或者在Bash中:

exec {memcache}<>/dev/tcp/localhost/11211; printf "get items:42:number\nquit\n" >&${memcache}; cat <&${memcache}
Run Code Online (Sandbox Code Playgroud)

转储所有对象:

memdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'
Run Code Online (Sandbox Code Playgroud)

或者在Bash中:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}
Run Code Online (Sandbox Code Playgroud)

  • 二进制文件的发行版可能名为“ memcdump”,而不是“ memdump”。 (3认同)