東京うぇ部

PHPをメインにしたプログラム情報共有サイト

CakePHP

Cakephpでキャッシュ利用法

ゴリゴリ書いているサイトや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

これは使えるところがあればどんどん使っていきたいですね。

あー。またないちゃ~ドットコムを見てしまった。。

さ、仕事をがんばりましょ!

コメントを残す




このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事