連続データをユーザーに提示するアプリケーションがあるとします。例: ブログ - ブログ エントリのリストを表示し、このリストはページに分割されているため、最終的に /page1、/page2 などになります。
明らかに最初のページが最も頻繁にリクエストされますが、ページ数が多いほどリクエストされる頻度は低くなります。
アプリにキャッシュを実装する場合、次の 2 つの選択肢があります。
新しいエントリごとにすべてのページのキャッシュを更新する
ページがリクエストされると、PHP はキャッシュされたバージョンを探します。存在する場合はそれが返され、そうでない場合は有効期限が 1 時間に設定された状態でキャッシュが作成されます。
最初の解決策は、私にとって本当にリソースの無駄のように思えます。2 つ目は、危険なシナリオの可能性を生み出します。
ユーザーがページ x を要求し、次に (x+1) を要求した場合、ページ x はキャッシュされ、ページ (x+1) はキャッシュされていない場合はどうなりますか? ページ x のキャッシュが古い場合、ページ (x+1) のユーザーには同じコンテンツが表示されます。さらに悪いことに、ユーザーが x ページから (x-1) ページに移動した場合はどうなるでしょうか? 彼はいくつかのエントリを逃すでしょう!
この問題を回避するためにキャッシュを実装する方法は?