masalibの日記

システム開発、運用と猫の写真ブログです

memcachedに入っているデータの確認

memcachedは早くて便利なプロダクトなんですが、 いざデータをみたいとなった時にmemcached-toolのダンプしかデータを見る事ができない。 それだとデータが本当に入っているのか、意図しないデータが入っているなどありえる。

masalib.hatenablog.com

確認は絶対に必要なんだけど、もう少し具体的にデータを取得する方法を用意するべきと思ったので 記載する

キーがわかっている場合

$m = new Memcached();
$m->addServer('xx.xxx.xxx.xxx', 11211); //hostとportを設定する
$key='key_XXXXXXXXXXX';
$get_data = $m->get($key);
var_dump($key); 
echo ($get_data);   

キーがわかっていない場合

1回目はキーどのようなデータが入っているのかを探る

$m = new Memcached();
$m->addServer('xx.xxx.xxx.xxx', 11211);//hostとportを設定する
$cachekeys = $m->getAllKeys();
foreach ($cachekeys as $key) {
  var_dump($key);
}

2回目以降はキーから推測してデータを出力する

$m = new Memcached();
$m->addServer('xx.xxx.xxx.xxx', 11211);//hostとportを設定する
$cachekeys = $m->getAllKeys();
foreach ($cachekeys as $key) {
    $prefix = 'key_';   // prefixの部分にキーの頭に入っている文字列をいれる
    if (strpos($key, $prefix, 0) !== 0) {
        //var_dump($key);
    } else {
        var_dump($key);
        $get_data = $m->get($key);
        echo $get_data; 
   }
}