memcached in Kohana PHPを利用

Kohana PHPmemcachedそのものが既に入っててmemcachedが起動している上で、
クライアントを利用する。

利用する前にdefaultのcache参照先がfileになってるので先にそれを変更する。
system/config/cache.phpを以下のように変更。

$config['default'] = array
(
'driver' => 'memcache', /* ここを変更 */
'params' => '', /* 空に変更 */
'lifetime' => 1800,
'requests' => 1000
);

設定が終わったらいよいよクライアントコードを書いていく。
phpの本家はここ
Kohanaのmemcachedここ

Kohanaでは以下のようにmemcachedインスタンスを立ち上げ、get/put(set)すればo.k.

$cache = Cache::instance();
$val = "hoge";
$cache->set('key1',$val,NULL,600); /* 10分間保存。tag付けも可能。 */
$val = $cache->get('key1');

画像などobjectをget/putする場合はその前後で適宜serialize(),unserialize()してやる必要がある。
今回はImageMagick型の画像を保存するのに使ったが、マジックメソッド__tostringを利用して、$val=__tostring($image);として、(key/$val)の形式で突っ込んだよ。

set時に保存時間を0にsetすると、指定したmemcachedの最大容量が超えるまではずっと永続化されるようです。memcachedの利用状態を確認するにはtelnetを使って、以下のようにすればよい。

$ telnet localhost(memcachedのhost) 11211(port番号)
Trying ::1...
Connected to localhost.
Escape character is '^]'.

statsと入力。
/* 以下に利用情報が表示されます */

etag併用で利用すれば中規模なサイトならかなり早くて良いです^^