2010年4月7日水曜日

PHPのCache::Liteを使ってみた

とあるWebアプリを改修中。

設定情報を全てSQLiteに格納しているため、ページを表示するたびに、多いと1000回近くのSQLが実行される。いくらSQLiteが高速といっても、これでは効率が悪いということで、DBの結果をキャッシュすることにした。考えられる選択肢は次の3つ。(参考「Memcacheはやっぱりすごかった : アシアルブログ」)

デーモンを立ち上げると管理がめんどくさくなるので、ファイルでキャッシュするほうが望ましい。となるとAPCかCache::Liteとなる。

APCはPECLなので高速だろうと思って早速試してみるが失敗。というのは、アプリが稼働しているサーバのApacheとPHPのビルド環境が不十分なため、コンパイルが落ちてしまう。動いているサーバのPHPを入れ替えるのはリスクが高いので、APCそのものが悪いわけではないが、あきらめることした。

次にCache::Liteを試してみる。インストールはpearコマンド一発で終了。さっそくサンプルスクリプトを実行する。一つだけ引っかかったのはキャッシュを保存するディレクトリを指定する際、最後にスラッシュ(/)をつけなければいけないこと。それ以外は無問題であっさり動いた。

アプリに組み込んでみると、SQLの実行回数が激減して応答速度が向上した。PEARモジュールなのでパフォーマンスを心配していたが、今のところは十分なスピードが確保できている。久しぶりにお買い得な気分を味わった。

0 件のコメント:

コメントを投稿