キャッシュ
キャッシュは、一度表示したページをサーバー側に保存し、次のアクセスではその結果を返す仕組みです。
アクセスが集中しても、サーバーの負荷を抑えられます。記事を保存すると、その記事のページのキャッシュはクリアされ、記事ページには次のアクセスから更新した内容が表示されます。
表示の速さと更新の反映のバランスを、サイトに合わせて調整できる
子ブログの記事を載せたトップページにも、更新を反映できる
保存先はデータベース・ファイル・Redis などから選べる
解決できる課題
アクセス集中
テレビで紹介されたときやキャンペーンの開始時に、アクセスが集中してサイトが重くなる。
更新内容の反映
表示を速くしたいが、更新した内容が古いまま表示され続けるのは避けたい。
親子ブログの更新
子ブログの記事をトップページにも出していると、どこまでキャッシュを消せばよいか分かりにくい。
機能詳細
組み立て済みの HTML を保存して返す
ページを表示するとき、CMS は毎回データベースから記事や設定を取り出し、テンプレートに当てはめて HTML を組み立てています。キャッシュは組み立て済みの HTML を保存しておき、2 回目以降はそれをそのまま返します。そのぶん表示が速くなり、サーバーの負荷も下がります。
特に効果が出やすいのは、アクセスが集中するタイミング、性能に上限のある共有サーバー、一覧や検索結果のように表示までの処理が多いページです。
反映のタイミングを決める
管理画面の「コンフィグ > キャッシュ設定」で、キャッシュを作り直すきっかけを調整できます。
キャッシュ有効時間:秒数で指定します。この時間を過ぎると、次のアクセスで作り直します。
POST 時のキャッシュクリア:記事の保存や設定の変更をきっかけに、指定した範囲のキャッシュをクリアします。オフにしていても、更新した記事そのもののキャッシュはクリアされます。
クライアントキャッシュの有効時間:CDN などの中間キャッシュに保存させる時間です。「ブラウザキャッシュ無効」のチェックを外すと、閲覧者のブラウザにも保存されます。
どのブログまでクリアするかを選ぶ
子ブログの記事をルートブログのトップページにも表示している場合などに、キャッシュのクリアをどのブログまで広げるかを、「実行ブログのみ」「実行ブログと下階層のブログ」「実行ブログと親階層のブログ」「全ブログ」から選べます。
サイトの性格に合わせた設定例
公式ドキュメントでは、サイトの性格に応じた設定例が示されています。
設定項目 | 更新が少ないサイト | 更新もアクセスも多いサイト |
|---|---|---|
ページキャッシュ | 有効 | 有効 |
POST 時のキャッシュクリア | 有効 | 無効 |
キャッシュ有効時間 | 30 日 | 5 分 |
クライアントのキャッシュ有効時間 | 120 秒 | 120 秒 |
更新もアクセスも多いサイトで「POST 時のキャッシュクリア」を無効にしているのは、更新のたびに全ページのキャッシュが一斉に消えると作り直しが集中し、かえって負荷が上がるためです。
ご利用にあたって
ページキャッシュが働くのは、ログアウト状態の閲覧者に対してです。ログインしている管理者・編集者・投稿者には最新の状態が表示されます。閲覧者と同じ見え方を確かめたいときは、ログアウトした状態か、別のブラウザで確認してください(設定により、会員などの読者ユーザーにはサインイン中でもキャッシュを返せます)。
クライアントキャッシュ(CDN や閲覧者のブラウザ)に保存された内容は、CMS 側から消せません。クライアントキャッシュの有効時間は数分程度にとどめてください。
テンプレートや設定、カスタムフィールドなどにもキャッシュがあり、管理画面のダッシュボードからまとめてクリアできます。
保存先は、サーバーの環境設定でデータベース・ファイル・Redis などから選べます。サーバーを複数台に分ける構成にも対応しています。
詳しい資料
詳細:キャッシュ | a-blog cms developer