キー一覧を取得出来る風 memcached 用インターフェース - にぽたん研究所

March 05, 2007

このエントリーをはてなブックマークに追加
久々に cool な CPAN モジュールを紹介してみたりする。

memcachedCache::Memcached から操作してると、キーの一覧が取得したい時があったりして、まぁ、memcached の仕様的にはそれが出来ないんですが、Cache::Memcached::Indexable というモジュールを使うことによって、取得出来る風です。

ってだけに、実際は違うんですが。






概念的には Cache::Memcached 風のインターフェースで、set() やら get() やら delete() する時に、そのキーから、数パターンに納まる、本当に保存すべき key を取ってきて、そこに保存された、ちょっと大き目の hashref から、保存したり、取り出したり、削除したりするって概念。

use strict;
use Cache::Memcached::Indexable;
use Data::Dumper;

my $memd = Cache::Memcached::Indexable->new({
    servers => [ 'localhost:11211' ],
    logic   => 'Cache::Memcached::Indexable::Logic::DigestSHA1',
});

$memd->set(foo      => 'FOO');
$memd->set(bar      => 'BAR');
$memd->set(baz      => 'BAZ');
$memd->set(jitensya => 'JITENSYA');
$memd->set(hoge     => 'SASHIMI');

my %all = ();
for my $key ($memd->keys) {
    $all{$key} = $memd->get($key);
}

warn Dumper \%all;
こんなんしてみると
$VAR1 = {
          'bar' => 'BAR',
          'baz' => 'BAZ',
          'foo' => 'FOO',
          'jitensya' => 'JITENSHA',
          'hoge' => 'SASHIMI'
        };
keys() メソッド経由で全ての key が取り出せているのがわかります。



思い付きってレベルじゃねぇぞ。

実際思い付きなので無保証なかんじです。

あと、memcached は 1.2.x 系でのご利用を推奨します。

nipotan at 21:57 | Comments(0) | TrackBack(0) | 技術 
このエントリーをはてなブックマークに追加

Trackback URL for this entry

Post a comment

Name:
URL:
  Remember info?: Rate: Face    Star