ことさら−古都プログラマーの更級日記

京都でお寺を回りながら御朱印集めをしていたエンジニアのブログ。おもに技術的なはなしとか日常的なはなし。たまにカメラの話や競馬の話も書きます。

コンソールからMemcacheの中身を見るにはtelnetを使う

コンソールからMemcacheの中身を見るためには基本的にはtelnetを使うしかないです。

telnet での Memcache 接続方法と切断方法

以下のように接続できます。

$ telnet <host> <port>

Memcache はデフォルトだと11211ポートで動いています。localhostで動いているMemcacheにポート11211で接続するには以下のようにします。

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

これで接続できましたので、後述する setget といったコマンドを実行できます。

切断するには quit と入力します。

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
quit
Connection closed by foreign host.
$

値をsetする

telnet で接続した後に以下の様に入力すると値をsetできます。

$ telnet localhost 11211
Connected to localhost.
Escape character is '^]'.

set <key> <flag> <byte>[Enter]
<setする値>

<flag>0 or 1 の値で、0だと非圧縮、1だと圧縮した後にデータをストアします。

<byte><setする値> のバイト数です。例えば abcd なら4バイトですので 4 と入力します。

key, flag byte を入力した後Enterを押し、その後にsetしたい値を入力するとkeyに値がsetされます。

set hoge 0 0 4
abcd
STORED

setした値は後述のgetを使えば取得することができます。

値をgetする

telnet で接続した後に get <key> と入力するとkeyに対応した値をとれます。

値が存在する場合はその値が表示された後に END と表示されます。

$ telnet localhost 11211
Connected to localhost.
Escape character is '^]'.

get hoge
VALUE hoge 0 4
abcd
END

1行目にkeyとフラグ、バイト数が表示され、2行めに値、最後に END と表示されます。

値が存在しない場合は END とだけ表示されます。

$ telnet localhost 11211
Connected to localhost.
Escape character is '^]'.

get hoge
END

値をdeleteする

delete <key> と入力するとkeyに対応した値が削除されます。

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

get hoge
VALUE hoge 0 4
abcd
END

delete hoge
DELETED

get hoge
END

DELETED と表示されます。keyに対応する値がない場合は NOT_FOUND と表示されます。

$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

delete hoge
NOT_FOUND

まとめ

以上がMemcacheをコンソールから叩く方法です、少し面倒ですがデバッグなどで必要になる場合もあるので覚えておきましょう。

webやアプリケーションのエンジニアがインフラについて学びたい時にまず読むといい本です。インフラの基礎から運用まで、アプリケーションエンジニア向けに解説しています。非常にとっつきやすい本なのでオススメです。