memcachedのコンテンツを表示する


36

現在memcachedプール内にキャッシュされているものを調べるツールはありますか?それほど多くのグラフではありませんが、現在保存されている実際のキー/値。

回答:


9

試してくださいstats items-すなわち

echo "stats items" | nc 127.0.0.1 11211

16
これは質問にどのように答えますか?!これはサーバーの統計情報のみを提供し、キーを取得しません。
ジャグテシュチャダ

24

正解は 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コマンドについてをご覧ください。


キャッシュダンプは文書化されていないデータ量に制限されており、1-2MBを超えることはないため、信頼できません
John

11

memcached-tool

最近のバージョンmemcachedにはmemcached-toolperlスクリプトもあります。例:

memcached-tool localhost:11211 dump | less

すべてのキーと値をダンプします。

memdump

サーバーからキーのリストをダンプするには、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次のコマンドを使用できます。

memccat CACHE-KEY

バッシュ

Bashシェルですべてのキーをダンプするには、次を試してください。

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

Python

参照:memcachedからすべてのキーと値をPythonでエクスポートする方法は?


2
この答えは、実際の memcachedツールであるmemcdumpを見つけるのに役立ちました。この回答を参照してください:stackoverflow.com/a/14491419/720360
mmuller

1
私は最初にそうしなければなりapt install libmemcached-toolsませんでしたが、それでも私の道にはありませんでした/usr/share/memcached/scripts/memcached-tool localhost:11211 dump。Ubuntu 18.
カミーユ・グドゥスーン

7

telnetコマンドを使用してみてください。例:

$ telnet 0 11211
stats
stats items
set key 1 23 8
get key

6

インストールする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。機能しないようです。


2

基本的なmemcachedでは、サーバーに保存されているキーを照会する方法はないと思います。あなたが得ることができる唯一の考えは、ストレージと保存されたアイテムに関連する統計です。

ただし、Gem6などのmemcached準拠のソリューションを開発した一部のベンダーは、クエリを許可する機能を追加しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.