查看 memcached 的内容

查看 memcached 的内容

是否有任何工具可以探索 memcached 池中当前缓存的内容?不是很多图表,而是当前存储的实际键/值。

答案1

尝试stats items- 即

echo "stats items" | nc 127.0.0.1 11211

答案2

正确答案是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 stats cachedump 命令

答案3

memcached 工具

在最新版本中memcached还有memcached-toolperl 脚本,例如用法:

memcached-tool localhost:11211 dump | less

转储所有键和值。

内存转储

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

memcdump --servers=localhost 

转储所有对象:

memcdump --servers=localhost | xargs -L1 -I% sh -c 'echo "get %" | nc localhost 11211'

要将所有键值转储到单独的文件中:

while read -r key; do [ -f "$key" ] || echo "get $key" | nc localhost 11211 > "$key.dump"; done < <(memcdump --server localhost)

记忆猫

要打印键值,可以使用memccat命令,例如

memccat CACHE-KEY

猛击

要转储 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

Python

看:如何使用 Python 从 memcached 导出所有键和值?

答案4

安装libmemcached-tools然后您可以使用此命令获取所有密钥:

memcdump --server=127.0.0.1

要查看内容,您可以请求特定的密钥:

memcat --server=127.0.0.1 SOME_KEY

或者你可以循环遍历 Bash 中的键列表:

for key in $(memcdump --server=127.0.0.1); do echo ------ $key ------; memcat --server=127.0.0.1 $key; done

确保使用 127.0.0.1(如果您在同一主机上运行该命令),因为localhost它似乎不起作用。

相关内容