Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
baserCMSの
キャッシュの仕組み
〜もうキャッシュでハマらない!!〜
江頭 竜二
Catchup, Inc CEO
baserCMS Deveropper
http://ryuring.com
@ryuring
キャッシュ って?
1. ABOUT
キャッシュとは何か
あるものにアクセスする際、アクセスした結果を
一時領域に保存しておき、2回目以降、一時領域
のものにアクセスする事で、処理を省略し、高速
化する仕組み
何を省略できるか
• プログラムの処理(処理結果を保存)
• ネットワーク接続(リクエスト結果を保存)
• データベース接続(クエリ結果を保存)
一時領域とはどこか
• サーバー上のハードディスク
– ファイルキャッシュ ← baserCMSのサーバーキャッシュ
• サーバー上のメモリ
– memcached 、APC等
• ローカルのハードディスク
– ブラウザの一時領域
baserCMSのキャッシュ
2. BASER’S CACHE
baserCMSのキャッシュ機構
baserCMSのキャッシュはCakePHPの仕組みに依存
• cache 関数
– /lib/Cake/basics.php
– 主にビューキャッシュで利用
– ファイルキャッシュのみ
• Cache クラス...
baserCMSのキャッシュの種類
機構 設定名 保存先 説明
CakePHP
コア
Cache
クラス
_cake_core_ /app/tmp/cache/persistent/ CakePHPで利用する環境情報等の
データ
モデル
スキー...
キャッシュ問題の対策
2. TROUBLESHOOTING
キャッシュトラブルの基本的な考え方
1. キャッシュを利用しない
2. 任意の処理のタイミングでキャッシュをクリア
する
3. キャッシュの種類によりキャッシュ時間を変更
する
キャッシュを無効にする
• 全てのキャッシュを利用しない
– /app/Config/install.php
– Configure::write('Cache.disable', true);
• ビューキャッシュを利用しない
– /app/...
固定ページで
個別にキャッシュ時間を調整する
固定ページの編集エリアまた、コード欄に記入
• キャッシュを利用しない
– $this->cacheAction = 0;
• キャッシュ時間を個別に変更
– $this->cacheAction ...
キャッシュの設定の流れ
/app/Config/core.php (基本設定の定義)
/app/Config/install.php
/app/Config/bootstrap.php
/lib/Baser/Config/setting.php...
キャッシュの基本設定の変更
/app/Config/install.php
Configure::write(‘BcCache’, array(
‘engine’ => {キャッシュエンジン},
‘duration’ => {キャッシュ時間},...
キャッシュの設定を書き換える
/app/Config/bootstrap.php の
require CORE_PATH.‘Baser’.DS.‘Config’.DS.‘bootstrap.php’;
より下に記述
Cache::config(...
Thanks !
Enjoy Your Cache Life !
Upcoming SlideShare
Loading in …5
×

baserCMSのキャッシュの仕組み~もうキャッシュでハマらない!!~【勉強会資料】

264 views

Published on

株式会社キャッチアップにて行っている勉強会での発表資料です。今回は弊社代表取締役の江頭 竜二が発表した資料を公開致します。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

baserCMSのキャッシュの仕組み~もうキャッシュでハマらない!!~【勉強会資料】

  1. 1. baserCMSの キャッシュの仕組み 〜もうキャッシュでハマらない!!〜
  2. 2. 江頭 竜二 Catchup, Inc CEO baserCMS Deveropper http://ryuring.com @ryuring
  3. 3. キャッシュ って? 1. ABOUT
  4. 4. キャッシュとは何か あるものにアクセスする際、アクセスした結果を 一時領域に保存しておき、2回目以降、一時領域 のものにアクセスする事で、処理を省略し、高速 化する仕組み
  5. 5. 何を省略できるか • プログラムの処理(処理結果を保存) • ネットワーク接続(リクエスト結果を保存) • データベース接続(クエリ結果を保存)
  6. 6. 一時領域とはどこか • サーバー上のハードディスク – ファイルキャッシュ ← baserCMSのサーバーキャッシュ • サーバー上のメモリ – memcached 、APC等 • ローカルのハードディスク – ブラウザの一時領域
  7. 7. baserCMSのキャッシュ 2. BASER’S CACHE
  8. 8. baserCMSのキャッシュ機構 baserCMSのキャッシュはCakePHPの仕組みに依存 • cache 関数 – /lib/Cake/basics.php – 主にビューキャッシュで利用 – ファイルキャッシュのみ • Cache クラス – /lib/Cake/Cache/Cache.php – キャッシュエンジンを選べる(デフォルトはファイル)
  9. 9. baserCMSのキャッシュの種類 機構 設定名 保存先 説明 CakePHP コア Cache クラス _cake_core_ /app/tmp/cache/persistent/ CakePHPで利用する環境情報等の データ モデル スキーマ Cache クラス _cake_model_ /app/tmp/cache/models/ テーブルの構造情報 DBデータ Cache クラス _cake_data_ /app/tmp/cache/datas/ クエリ結果を配列で保持 環境情報 Cache クラス _cake_env_ /app/tmp/cache/environment / baserCMSで利用する環境情報 ビュー cache 関数 ー /app/tmp/cache/views/ レンダリング結果 対象は固定ページ View::cacheActionで期間を調整可 能 ブラウザ ブラウザ ー ブラウザの一時領域 画像、JS、CSS、HTML等 BcBaserHelper::cacheHeader()を利 用してブラウザのキャッシュ時間 を指定できる
  10. 10. キャッシュ問題の対策 2. TROUBLESHOOTING
  11. 11. キャッシュトラブルの基本的な考え方 1. キャッシュを利用しない 2. 任意の処理のタイミングでキャッシュをクリア する 3. キャッシュの種類によりキャッシュ時間を変更 する
  12. 12. キャッシュを無効にする • 全てのキャッシュを利用しない – /app/Config/install.php – Configure::write('Cache.disable', true); • ビューキャッシュを利用しない – /app/Config/install.php – Configure::write('Cache.check', false);
  13. 13. 固定ページで 個別にキャッシュ時間を調整する 固定ページの編集エリアまた、コード欄に記入 • キャッシュを利用しない – $this->cacheAction = 0; • キャッシュ時間を個別に変更 – $this->cacheAction = 86400; // 一日
  14. 14. キャッシュの設定の流れ /app/Config/core.php (基本設定の定義) /app/Config/install.php /app/Config/bootstrap.php /lib/Baser/Config/setting.php /lib/Baser/Config/bootstrap.php (キャッシュの設定) /app/Config/setting.php
  15. 15. キャッシュの基本設定の変更 /app/Config/install.php Configure::write(‘BcCache’, array( ‘engine’ => {キャッシュエンジン}, ‘duration’ => {キャッシュ時間}, ‘viewDuration’ => {ビューキャッシュ時間}, ‘prefix’ => {プレフィックス名} ));
  16. 16. キャッシュの設定を書き換える /app/Config/bootstrap.php の require CORE_PATH.‘Baser’.DS.‘Config’.DS.‘bootstrap.php’; より下に記述 Cache::config('_cake_data_', array( 'duration' => 60 )); 上書きしたいキーの定義だけで可
  17. 17. Thanks ! Enjoy Your Cache Life !

×