memcacheをsymfonyから利用してみました。

まずはyumを利用してmemcachedをインストールし、起動。

# yum install memcached
# chkconfig --level 345 memcached on
# /etc/init.d/memcached start

phpからmemcacheにアクセスする環境をつくる。

# pecl install memcache

php.iniに下記を追加し、apacheを再起動
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

今回はsymfonyから簡単にmemcacheを利用できるプラグイン、sfMemcachePluginを利用する。

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

pluginのconfigディレクトリにある、2ファイルをアプリケーションのconfigディレクトリにコピー

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

memcache.ymlにmemcacheサーバに接続するホストなどの情報を書き換える。

CODE:
  1. all:
  2.   servers:
  3.     default:
  4.       host: localhost
  5.       port: 11211
  6.       timeout: 1
  7.       weight: 1
  8.       retry_interval: 1
  9.       status: 1
  10.   buckets:
  11.     default:
  12.       servers: default
  13.     news:
  14.       servers: default

これで準備は完了。あとは利用方法はこんな感じ。

PHP:
  1. $namespace = 'sample_namespace';
  2. $key       = 'key';
  3. $fc        = new sfMemcacheFunctionCache;
  4. $result    = '';
  5. if ($fc->has($key, $namespace, ''))
  6. {
  7.   $result = $fc->get($key, $namespace, '');
  8. }
  9. else
  10. {
  11.   $result = 'result!!';
  12.   $fc->set($key, $namespace, $result);
  13. }

blogranking←ぽちっとな