CHIのMultilevel driverで多段cache

MemoryになければMemcachedからcache取得、のようなコードを以下のように書けるというのがCHIの肝で、ここがData::ObjectDriverととても似ているんですね。

subcachesのところに、driverを複数書くと、書いた順にcacheを探しにいきます。

#!/usr/bin/env perl
use strict;
use warnings;
use CHI;

my $cache = CHI->new(
    driver    => 'Multilevel',
    subcaches => [
        { driver => 'Memory' },
        {   driver  => 'MemcachedFast',
            servers => ["127.0.0.1:11211"]
        }
    ],
);

$cache->set( 'hoge', 'hige' );
print $cache->get('hoge');

# 後もう一つの肝は、get_multiを使える事。