2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

memcached に保存されている key や value の情報を見る

Last updated at Posted at 2019-03-04

どんなキーが入ってるか確認することがあるので忘れないようメモ。
基本的に僕はこの3つしか使いません。

$ memcached-tool localhost:11211
$ echo 'stats cachedump [slab] [limit]' | nc localhost 11211
$ echo 'get [key]' | nc localhost 11211

上から順に

  • どの slab にどれくらい cache されてるかとか見る
  • slab 内の key name や 有効期限を見る
  • key に保存されている値を見る

どの slab にどれくらい cache されてるかとか見る

$ memcached-tool localhost:11211
  #  Item_Size  Max_age   Pages   Count   Full?  Evicted Evict_Time OOM
  1      96B       367s       1       2      no        0        0    0
  3     152B         0s       1       0      no        0        0    0
  4     192B         0s       1       0      no        0        0    0
  5     240B         0s       1       0      no        0        0    0
  6     304B         0s       1       0      no        0        0    0
  7     384B         0s       1       0      no        0        0    0
 18     4.4K         0s       1       0      no        0        0    0
 19     5.5K         0s       1       0      no        0        0    0
 27    33.1K         0s       1       0      no        0        0    0

Count 列を見ると slab#1 に2個だけ item が保存されていることがわかります。
他の slab は領域は確保しているが item は入っていない(expire したか delete された)状態です。
このコマンドの詳細な見方は別の記事やドキュメントに譲ります。

slab 内の key name や 有効期限を見る

slab#1 に存在する item を 5件出力

$ echo 'stats cachedump 1 5' | nc localhost 11211
ITEM foo [15 b; 1551662258 s]
ITEM hoge [4 b; 0 s]
END

key ・バイト数・有効期限(UNIXTIME)が item ごとに出力されます。
新しく set した順に出力されてるようです。

key に保存されている値を見る

$ echo 'get foo' | nc localhost 11211
VALUE foo 0 15
0123456789abcde
END

"0123456789abcde" が保存されていました。

(おまけ)今回のデータ

忘れそうなのでメモ。
set key [flag] [expire] [byte]

  • flag: 0 でいい
  • expire: 秒数で指定。 0 ならずっと生きる
  • byte: 2行目で入力する value はこの byte じゃないと CLIENT_ERROR bad data chunk が出るので注意
$ nc -c localhost 11211
set hoge 0 0 4[Enter]                                                                                                                                                                             
fuga[Enter]
STORED
set foo 0 1000 15[Enter]
0123456789abcde[Enter]
STORED

改行コードは CRLF にしないといけないので注意。
僕の手元の環境では c オプションで変えられました。

$ man nc
...
-c      Send CRLF as line-ending
...

参考

後で自分で見返す時用の memcached の挙動についてメモ。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?