ゴリゴリ書いているサイトやPVがある程度あるサイトでは、
常に負荷(ロード)を気になってしまいます。
そこで、一度DBから取得したデータをキャッシュファイルに保存し、
特定の時間はそのキャッシュファイルからデータを読み込む方法を記載します。
過去のTwitter関連記事などでもこの方法を使えば
リクエスト回数が抑えられます。
まずCakephpのキャッシュ機能をTrueに設定。
app/Config/core.php
Configure::write('Cache.disable', false);
そして必要な箇所にてキャッシュに書き込み。今回は2時間キャッシュファイルに保持するように。
ちなみに管理人はコントローラーでしか経験がないですが、
モデルなどでも可能みたいです。
$data = 'キャッシュに保存されるかな?'; Cache::set(array('duration' => '+2 hours')); Cache::write('cache_key_name', $data);
んで、キャッシュからデータ取得。
Cache::set(array('duration' => '+2 hours')); $data = Cache::read('cache_key_name')); echo $data;
時間がたって取得できなかったら、再度キャッシュに保持・・のようなソースにすればOKですね。
ポイントは、readおよびwrite前に必ず
Cache::set(array('duration' => '+2 hours'));
を追記しないと、正常に機能しないといった感じです。
ちなみにキャッシュデータをファイルに保存するように設定してある場合は、
以下がキャッシュファイルになります。
app/tmp/cache/cache_key_name
これは使えるところがあればどんどん使っていきたいですね。
あー。またないちゃ~ドットコムを見てしまった。。
さ、仕事をがんばりましょ!