気ままなDevLog

webとかプログラミングについての雑記帳

sfMemcachePluginを使ってみる

phpのセッション管理にmemcacheを使うとむちゃくちゃ早いとの情報を得たので(いまさらですかね(^^;)さっそく調査してみると、Memcacheはやっぱりすごかった:アシアルブログベンチマークした結果が載ってた。
ふむふむなるほどこれは使えるな〜♪

さっそくsymfonyでも使ってみようと思ってさらに調査。
memcacheをsymfonyから利用してみる:ueblogsfMemcachePluginというのが紹介されてましたので自分でもやってみることに。

memcachedのインストール

# yum install memcached

※dagのリポジトリでないとyumでmemcacheは見つからなかったです。。。

つづいてphpでmemcacheを使えつるようにmemcacheをインストール

# pecl install memcache

php.iniに次のextensionを追記

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

sfMemcachePluginをインストール

$ symfony plugin-install http://plugins.symfony-project.com/sfMemcachePlugin

memcacheを使いたいアプリのconfigディレクトリに設定ymlファイルをコピー

$ cp plugins/sfMemcachePlugin/config/config_handlers.yml apps/front/config/
$ cp plugins/sfMemcachePlugin/config/memcache.yml apps/front/config/

※設定内容は必要であれば適宜修正します。

サンプル
action

  public function executeIndex()
  {
    $ns = 'mynamespace';
    $key = 'mykey';
    $fc  = new sfMemcacheFunctionCache;
    $this->result = '';
    if ($fc->has($key, $ns, ''))
    {
      $this->result = $fc->get($key, $ns, '');
    }
    else
    {
      $result = 'hello! memcache!';
      $fc->set($key, $ns, $result);
    }
    sfView::SUCCESS;
  }

templates

<?php echo $result ?>

ちゃんと2回目の表示で出ました。
これで超速いので、文句なしですね♪