ここで言うデータ キャッシュとは、ページにアクセスするたびに、まず対応するキャッシュ データが存在するかどうかを検出し、データベースに接続してデータを取得し、シリアル化します。クエリ結果をファイルに保存すると、今後は同じクエリ結果がキャッシュ テーブルまたはファイルから直接取得されます。
1. ユニバーサル キャッシュ テクノロジ:
データ キャッシュ: ここで説明するデータ キャッシュは、ページにアクセスするたびに、対応するキャッシュ データが存在するかどうかを最初に検出します。存在しない場合は、データベースに接続してデータを取得し、クエリ結果をシリアル化してファイルに保存します。今後は、同じクエリ結果がキャッシュ テーブルまたはファイルから直接取得されます。最も広く使用されている例は、結果 ID をテーブルにキャッシュし、次回同じキーワードを検索するときに最初にキャッシュ テーブルを検索する Discuz の検索機能です。一般的な方法として、複数のテーブルが関連付けられている場合、配列を生成し、アタッチされたテーブルの内容をメイン テーブルのフィールドに保存します。この方法の利点は、必要に応じて配列を分解することです。読み取りできるテーブルは 1 つだけですが、欠点は、2 つのデータを同期するためにさらに多くの手順が必要になることです。これは、速度と引き換えにハードディスクを使用することが重要です。
2. ページのキャッシュ:
ページにアクセスするたびに、対応するキャッシュされたページ ファイルが存在するかどうかが最初に検出され、存在しない場合はデータベースに接続し、データを取得してページを表示します。同時にキャッシュされたページ ファイルを生成します。これにより、次回アクセスしたときにページ ファイルが有効になります。 (インターネット上のテンプレート エンジンと一部の一般的な PHP キャッシュ メカニズム クラスには通常、この機能があります)
3. 時間トリガー キャッシュ: ファイルが存在するかどうか、およびタイムスタンプが設定された有効期限よりも小さいかどうかを確認します。ファイルが変更された場合、タイムスタンプが現在のタイムスタンプから有効期限のタイムスタンプを引いたものより大きい場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。
4. コンテンツトリガーのキャッシュ:
データが挿入または更新されると、PHP キャッシュ メカニズムが強制的に更新されます。
5. 静的キャッシュ:
ここで言う静的キャッシュとは、HTML や XML などのテキスト ファイルを静的に直接生成し、更新があったときに再生成することを指します。これは、あまり変更のないページに適しています。これ以上は言いません。
上記のコンテンツはコードレベルのソリューションです。次のコンテンツはコードレベルではなく、それを実現するには複数の関係者の協力が必要です。 :
Memcached は、データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用される、高性能の分散メモリ オブジェクト PHP キャッシュ メカニズム システムです。
7. PHP バッファ:
eaccelerator、apc、phpa、xcache があります。これらについては話しませんが、たくさん検索して自分の目で確認してください。
8. MYSQL キャッシュ:
これは、非コード レベルともみなされます。以下の実行時間 (0.09xxx など) を見てください。リバースプロキシの Web キャッシュ:
Nginx、SQUID、mod_proxy など (apache2 以降は mod_proxy と mod_cache に分かれています)
10. DNS ポーリング:
BIND はオープンソースの DNS サーバー ソフトウェアです。これは言及すべき大きな問題です。自分で検索するだけで、このようなものが存在することは誰もが知っています。
一部の大規模な Web サイトがこれを行っていることは知っています。簡単に言うと、同じページまたはファイルが異なるサーバーにキャッシュされ、北と南に従って適切なサーバーに自動的に解析されます。