APIをキャッシュし、負荷を軽減する施策をとるのを忘れていました。早めに気がついてよかったです。
こちらのエントリーを参考にして対応してみたので備忘録として残しておこうと思います。
お約束
ごむをはPHP独習中の素人なので参照は自己責任でお願いします。
Cache_Liteをインストールする
サーバに「Cache_Lite」をインストールします。サーバOSはCentOS5.4です。
# pear install Cache_Lite -bash: pear: command not found
そんなコマンドはないと怒られました。先に「php-pear」をインストールしておく必要があるようです。
# yum install php-pear
php-pearをインストールが完了したので、再度「Cache_Lite」のインストールを実施します。
Cache_Liteの設定
インストールが完了したので設定を行いました。API提供元サーバにコールするためのコードを修正。
// Cache_Liteインクルード
require_once "Cache/Lite.php";
//キャッシュオプション設定
$cacheOptions = array(
'cacheDir' => './tmp/', //tmpディレクトリに設定
'lifeTime' => '3600', //1時間に設定
);
//キャッシュID設定
$id = "area";
//Cache_Liteオブジェクト生成
$Cache_Lite = new Cache_Lite($cacheOptions);
//キャッシュがあるかどうかテスト
if($data = $Cache_Lite->get($id)){
//有効なキャッシュがある場合の処理
// キャッシュデータを表示
echo $data;
}else{
/有効なキャッシュがない場合の処理
//データをキャッシュ保存
$Cache_Lite->save($data,$id);
}//IF終了
とりあえず、各APIのコール部分に設定してみました。/tmpディレクトリにキャッシュが作られているようなので、うまくいっているとは思いますが、しばらく様子を見たいと思います。