memcached の中身を確認するなら memcached-tool コマンド
蚊取り線香の焚きすぎで目がかい~~の。nakamura です。今年なんか蚊多くありません?
以前に CakePHP の特集 で取り上げたりもした memcached ですが、キャッシュの中身を簡単に確認できるツールないかな?と探していたところ memcached-tool というコマンドがある事を知ったので今回ご紹介しようと思います。
memcached-tool コマンドは memcached をインストールすると自動でくっついてくる、言ってみればめっちゃシンプルな memcached クライアントです。機能的には参照系のものしかなく、キャッシュの中身を書き換えたり削除したりというのはできないようです。
オプション
オプションは display, stats, dump の 3 つしかありません。ちなみにオプションなしでコマンドを実行すると使い方が表示されます。こんな感じ↓
memcached-tool
Usage: memcached-tool <host[:port]> [mode]
memcached-tool 10.0.0.5:11211 display # shows slabs
memcached-tool 10.0.0.5:11211 # same. (default is display)
memcached-tool 10.0.0.5:11211 stats # shows general stats
memcached-tool 10.0.0.5:11211 dump # dumps keys and values
使ってみよう
オプションそれぞれの実行結果は以下のようなものです。
display
memcached-tool localhost display
# Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
2 104B 2395538s 1 7 no 0 0 0
3 136B 2395539s 1 3 no 0 0 0
4 176B 2359340s 1 1 no 0 0 0
5 224B 2359353s 1 1 no 0 0 0
6 280B 0s 1 0 no 0 0 0
7 352B 2318256s 1 1 no 0 0 0
8 440B 2359352s 1 2 no 0 0 0
9 552B 2359352s 1 10 no 0 0 0
コマンド実行時点で memcached 上に存在するキャッシュのオーバービューというか、要約的な一覧のようです。ちなみにホスト名のみの指定で実行するとデフォルトでこのオプションで動作します。
stats
memcached-tool localhost stats
#localhost:11211 Field Value
accepting_conns 1
auth_cmds 0
auth_errors 0
bytes 725340
bytes_read 947369731
bytes_written 308768608
cas_badval 0
cas_hits 0
cas_misses 0
cmd_flush 0
cmd_get 1039663
cmd_set 1160944
conn_yields 0
connection_structures 16
curr_connections 5
curr_items 51
decr_hits 0
decr_misses 0
delete_hits 11
delete_misses 3
evictions 0
get_hits 512475
get_misses 527188
incr_hits 0
incr_misses 0
limit_maxbytes 67108864
listen_disabled_num 0
pid 24276
pointer_size 32
reclaimed 662297
rusage_system 20.881825
rusage_user 13.976875
threads 4
time 1280452877
total_connections 5696
total_items 1160944
uptime 2396814
version 1.4.5
memcached 全体の状態を表示してくれるようです。細かい項目の説明は、、、これから勉強します。
dump
memcached-tool localhost dump
Dumping memcache contents
Number of buckets: 2
Number of items : 2
Dumping bucket 12 - 1 total items
add app_cake_core_core_paths 1 1280453801 803
a:10:{s:4:"libs";a:1:{i:0;s:41:"/var/www/htdocs/cake/libs/";}s:5:"model";a:1:{i:0;s:47:"/var/www/htdocs/cake/libs/model/";}s:8:"behavior";a:1:{i:0;s:57:"/var/www/htdocs/cake/libs/model/behaviors/";}s:10:"controller";a:1:{i:0;s:52:"/var/www/htdocs/cake/libs/controller/";}s:9:"component";a:1:{i:0;s:63:"/var/www/htdocs/cake/libs/controller/components/";}s:4:"view";a:1:{i:0;s:46:"/var/www/htdocs/cake/libs/view/";}s:6:"helper";a:1:{i:0;s:54:"/var/www/htdocs/cake/libs/view/helpers/";}s:4:"cake";a:1:{i:0;s:36:"/var/www/htdocs/cake/";}s:6:"vendor";a:1:{i:0;s:39:"/var/www/htdocs/vendors/";}s:5:"shell";a:1:{i:0;s:49:"/var/www/htdocs/cake/console/libs/";}}
Dumping bucket 2 - 1 total items
add app_cake_core_core_paths_expires 0 1280453801 10
1280453801
一番使いそうなオプションはこれかなぁ。キャッシュの中身を表示してくれます。上記は CakePHP の cake_core_core_paths のキャッシュ内容ですね。どうも memcached には bucket と item という 2 つ階層があるようです。知らなかった、、、
終わりに
memcached はまだあまり深く知らないのでちょっと勉強していこうかなぁ、という今日この頃でした。なんか libmemcached とかいうクライアントライブラリもあるっぽい。