機能の詳細 | システム管理

コンテンツキャッシュ——動的出力で、同じデータの読み込みを繰り返さない

動的出力では、閲覧者がアクセスするたびに、コンテンツとテンプレートからページを組み立てます。そのたびにデータベースへ読みに行くと、アクセスが増えたときにサーバーの負荷になります。コンテンツキャッシュは、一度読み込んだデータをCMSサーバーのメモリに置いておき、次のアクセスで使う仕組みです。

保持するのは、ページの材料のデータです

キャッシュするのは、ページを組み立てるときに読み込む、コンテンツ・ディレクトリ・サイトのデータです。出来上がったHTMLは保持しません。

ページは毎回テンプレートで組み立てるため、会員の条件で表示を変える、検索結果を出すといった処理は、キャッシュがあってもそのまま動きます。

更新は、数秒ごとに確かめて反映します

保持しているデータは、数秒ごとにデータベースの更新日時と照らし合わせます。変わっていれば、そのデータを破棄し、次のアクセスで読み直します。キャッシュを消す操作は要りません。

確かめる対象は、コンテンツ本体だけではありません。そのコンテンツが使うテンプレート、ディレクトリ、サイトの設定、入力フォームの項目や選択リストが変わった場合も、読み直しの対象になります。

組み込みコンテンツも、ほかのコンテンツと同じ扱いです。直した内容は、差し込んでいるページにも次のアクセスから反映されます。

使われないデータは、自動で手放します

最後に使われてから一定時間使われなかったデータと、保持件数の上限を超えた分は、使われていない順に破棄します。保持時間・件数の上限・キャッシュを使うかどうかは、サーバーの設定で環境に合わせて決めます。

静的出力のサイトには関係しません

静的出力では、書き出したHTMLファイルを配信するため、閲覧時にデータベースを読みません。コンテンツキャッシュが働くのは、動的出力とヘッドレス配信です。

管理画面

コンテンツキャッシュ。ページ生成がメモリのキャッシュからデータを使い、キャッシュに無いときと更新されたときだけデータベースを読み、キャッシュは数秒ごとに更新を確認する流れを示した図

writeWiredのコンテンツキャッシュ——動的出力で、同じデータの読み込みを繰り返さないの特長

キャッシュするのは項目の集合のデータで、HTMLではありません。ページは毎回テンプレートで組み立てるため、出し分けとキャッシュが両立します。

「届け方を選ぶ」の機能

製品ページ: CMS