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