マルチレベルキャッシュとは?
キャッシュのレベルを段階的にしてパフォーマンスを上げる手段として、
APCとMemcachedの両方を使い、APCに無ければMemcachedへ取得しにいく、
組み合わせは自由で、APCとMySQLだったりと参照コストの低いものを手前に持ってくることで、
パフォーマンスを上げる的な感じ
Phalcon本体のマルチレベルキャッシュのドキュメントはこちら
http://phalcon-php-framework-documentation.readthedocs.org/en/1.3.0/reference/cache.html#multi-level-cache
Phalcon\Cache として実装されているものを、セッション情報の保存先としても使えるようにするためのアダプタ書いた感じです。
使い方
use Iwai\Phalcon\Session\Adapter\CacheBackend;
use Phalcon\Cache\Frontend\Data as FrontendData;
$app->getDI()->setShared('session', function () {
$session = new CacheBackend();
$backend = new \Phalcon\Cache\Multiple();
$backend->push(new \Phalcon\Cache\Backend\Apc(
new FrontendData([ 'lifetime' => 3600 ]),
[ 'prefix' => 'cache' ]
));
$backend->push(new \Phalcon\Cache\Backend\Memcached(
new FrontendData([ 'lifetime' => 86400 ]),
[ 'prefix' => 'cache', 'host' => 'localhost', 'port' => 11211 ]
));
$session->setBackend($backend);
$session->start();
return $session;
});
Packagistに登録してあるので、composerでさくっとインストールできまする
https://packagist.org/packages/iwai/phalcon-session-adapter-cachebackend