回答:
正解は 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コマンドについてをご覧ください。
最近のバージョン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シェルですべてのキーをダンプするには、次を試してください。
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
。機能しないようです。