a-blogの負荷軽減のためにCache_Liteを利用してみる その1
a-blogでMySQLへのアクセス負荷を減らすためにPEARのCache_Liteを利用してキャッシュをする処理を作ってみた。とりあえず、以下のサンプルではアクセス数のカウントやリファラーの保存、ケータイのテーマの切り替えが動作しなくなります。
<?PHP require('Cache/Lite.php'); $cacheOptions = array( 'cacheDir' => './cache/', 'caching' => 'true', 'automaticSerialization' => 'false', 'lifeTime' => 1800, 'automaticCleaningFactor' => 20, 'hashedDirectoryLevel' => 1, ); foreach ($_POST as $name => $data) { $postData .= "_".$name."=".$data; } $cacheID = $_SERVER['REQUEST_URI'].$postData; $cache=new Cache_Lite($cacheOptions); if( $cache_data=$cache->get($cacheID) ){ $buff = $cache_data; print $buff; } else { ob_start(); include ("./a-blog.php"); $buff = ob_get_contents(); $cache->save($buff); } ?>
上記を index.php として、もともとの index.php を a-blog.php とリネームします。 cacheというディレクトリを作りプログラム側がファイルを作れるようなパーミッション777とかにして下さい。PEAR の Cache_Lite をサーバーにインストールするか、Cache_Lite をダウンロードして、a-blog の動作させているディレクトリ内に Cache というフォルダを作り、中にダウンロードしてきた Lite.php を入れて下さい。
これで、一応動作するんじゃないかと思います。 最初に書いた問題点を、明日の朝には解決して、このブログに利用してみようと思います。 その2に続く...