memcachedの(libmemcached的な)隠しコマンド

statsコマンドのサブコマンドのcachedump.これを使えば,キーのリストアップができます.
telnetでやると,こんな感じです.

memcachedlocalhostで立ち上げたばかりだとします.

# telnet localhost 11211
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats items    % カラなのを確認
END
set 123 0 0 4  % set キー値 オプション・フラグ値 有効期間値 バイト数
abcde   % わざと指定バイト数と違う文字数(5バイト)を入れてみる
CLIENT_ERROR bad data chunk    % ちゃんとエラーになった
ERROR
set 123 0 0 4
abcd    % 今度はちゃんと4バイト入れてみる
STORED   % 正常に処理されたっぽい
get 123   % 確認してみる
VALUE 123 0 4
abcd    % 完璧.setしたvalueが返ってくる
END
stats items   % データを1個入れたことを確認したい
STAT items:1:number 1   % slab=1にデータが1個入っていることが確認できた
STAT items:1:age 25
STAT items:1:evicted 0
STAT items:1:outofmemory 0
END
stats cachedump 2 10   % わざと存在しないslabを指定してみる
END    % エラーにはならないようだ
stats cachedump 1 10   % データを1個入れたslabを指定してみる
ITEM 123 [4 b; 1236572001 s]   % ちゃんとデータのキー「123」が返ってきた.バイト数も4バイトと正しい.
END
set 345 0 0 4  % データをもう1個入れてみる
ABCD
STORED
stats items  % データの個数を調べる
STAT items:1:number 2   % ちゃんと2個になった
STAT items:1:age 476
STAT items:1:evicted 0
STAT items:1:outofmemory 0
END
stats cachedump 1 10   % slab「1」を指定してダンプしてみる
ITEM 345 [4 b; 1236572001 s]   % こちらは後から入れたデータ
ITEM 123 [4 b; 1236572001 s]   % こちらは先に入れたデータ
END

C/C++Rubyで色々コマンドを作ったので,そのうち公開します.