Answers:
正确的答案是 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 stats cachedump命令》。
在最近的版本中memcached
还有memcached-tool
perl脚本,例如使用:
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
apt install libmemcached-tools
,但是后来仍然不在路上/usr/share/memcached/scripts/memcached-tool localhost:11211 dump
。Ubuntu 18.
安装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
它似乎无法正常工作。