OpenPNE2.10で入ったsessionをmemcached上で動かす機能について

2.10でのパフォーマンスアップへの取り組みは、
・sessionをmemcached上で動かす
・function cacheをmemcached上で動かす
の二点が大きい。

OpenPNE開発者のまるさんが良いブログを書いているので、
全文引用させてもらいます。
http://ameblo.jp/marupne/entry-10046124070.html

セッションストレージにmemcache 追記 + ファンクションキャッシュをmemcache
テーマ:ブログ

セッションストレージにmemcache
http://ameblo.jp/marupne/entry-10042510558.html

に引き続き、セッションストレージにmemcacheを利用することに関して再調査と実装を行いました。

前回PHPからmemcacheが認識できないという問題がありましたが、調査したところ、現在の環境のCentOSyumでインストールできる最新のPHPの4.3.9では、PECL::memcacheの最新の2.1.2が利用できないようです。

http://pecl.php.net/bugs/bug.php?id=10536&edit=1
http://lists.rpmforge.net/pipermail/users/2007-June/000807.html

そのため、今回rpmでのインストールで2.0.4のPECL::memcacheをインストールにより、動作を確認しました。

インストール手順としては

http://centos.oss.sc/fundamentals/yum_rpmforge/
よりRPMforgeからrpmを取得できるようにし

yum install libevent
yum install memcached
wget http://dag.wieers.com/rpm/packages/php-pecl-memcache/php-pecl-memcache-2.0.4-1.el4.rf.i386.rpm
rpm -ivh php-pecl-memcache-2.0.4-1.el4.rf.i386.rpm

でインストール、OpenPNEのtrunkからソース設置、DB設定などの通常のOpenPNEの設定を行った後、config.php

・セッションをmemcacheに格納
// セッション情報を保存するストレージ
// 0:ファイル
// 1:データベース
// 2:memcache(要PECL::memcache)
define('SESSION_STORAGE', 2);
// セッションデータ保存用Memcache(オプション)
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['session'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);

・ファンクションキャッシュをmemcacheに格納
// このオプションを有効にするためにはOPENPNE_USE_FUNCTION_CACHEをtrueにする必要があります。
// ファンクションキャッシュのキャッシュを保存するストレージにmemcacheを使用
define('OPENPNE_USE_FUNCTION_CACHE_MEMCACHE', true);

// OPENPNE_USE_FUNCTION_CACHE_MEMCACHEがtrueの場合の
// ファンクションキャッシュ用memcacheサーバ設定
$GLOBALS['_OPENPNE_MEMCACHE_LIST']['func_cache'] = array(
'dsn' => array(
'hostspec' => '127.0.0.1',
),
);

のように設定することによって利用できます。

この機能は2.10に入る予定です。