タグ付けできるMemcacheクライアントを実装してみました

このエントリーをはてなブックマークに追加
はてなブックマーク - タグ付けできるMemcacheクライアントを実装してみました

こんにちは。平井です。
社員を飲みに誘って先に酔っ払うのが最近の醍醐味です。

最近は話題になることも多いKVSですが、
村式でもMemcachedをキャッシュ層に取り入れたりして、アプリケーションの処理能力を向上させたりしています。

Webアプリケーションに構築する上でキャッシュはとても有用ですが、
「ちゃんと消す」ということを意識して実装しないと、更新された情報が正しく表示されないといった状態に陥りがちです。

Perlの世界では、Memcachedに保存するデータをグルーピングして管理できるCache::Memcached::Managedというライブラリが開発されてます。実際にいじったことはないですが、キャッシュの保存/削除に非常に有用なのではないでしょうか。

このようなライブラリがPHPにもあったらなーと思って少し探してみたのですが、見つけることができなかったので実装してみることにしました。

MemcacheTagging

以下のような感じで使用します。

require dirname(dirname(__FILE__)) . '/path/to/MemcacheTagging.class.php';

// create a instance.
$cache = MemcacheTagging::getInstance();

// set a value with tags.
$cache->set('key', 'value', array('tag_foo', 'tag_bar'));

// retrieve with a tag.
$values = $cache->getByTag('tag_foo');

// delete with a tag.
$cache->deleteByTag('tag_foo');

実装している主な機能としては、

  • キャッシュするデータにタグをつけられる
  • キャッシュされているデータをタグで取り出せる
  • キャッシュされているデータをタグで削除できる

などです。

  • テストがまだ適当
  • アトミックな実装になってない

など、まだまだ心配な面がありますので、社内の開発の中で検証を重ねて改良して行きたいと思っています。
Own Riskな上で試してくださる豪気な方大歓迎です!
何かありましたら twitterに投げて頂くのが反応早いと思います。

それでは!

カテゴリー: php   パーマリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>