LoginSignup
6
6

More than 5 years have passed since last update.

PhalconのマルチレベルキャッシュをSessionで使えるように

Posted at

マルチレベルキャッシュとは?

キャッシュのレベルを段階的にしてパフォーマンスを上げる手段として、
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

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6