一部の情報 (多くの場合は一定ですが変更される可能性がある情報) は、表示を高速化するためにキャッシュに保存されます。これは、サーバー側に保存される共有情報であると一般的に理解されています。サーバーは生死と同じです。たとえば、次の更新の時間を指定できます。 ここで言うデータ キャッシュは、データベース クエリ PHP キャッシュ メカニズム。ページに入るたびに、まず対応するキャッシュ データが存在するかどうかを検出し、存在しない場合はデータベースに接続し、データを取得し、クエリ結果をシリアル化して保存します。将来的には、同じクエリ結果がキャッシュ テーブルまたはファイル取得から直接取得されるようになります。
最も広く使用されている例は、結果 ID をテーブルにキャッシュし、次回同じキーワードを検索するときに最初にキャッシュ テーブルを検索する Discuz の検索機能です。
一般的な方法として、複数のテーブルが関連付けられている場合、配列を生成し、添付されたテーブルの内容をメインテーブルのフィールドに保存します。これには、1 つのテーブルのみを読み取るという利点があります。には 2 つの欠点があります。データを同期するには、さらに多くの手順が必要になります。速度を犠牲にすることが常にボトルネックになります。
ページキャッシュ:
ページにアクセスするたびに、対応するキャッシュされたページファイルが存在するかどうかが最初に検出され、存在しない場合は、データベースに接続してデータを取得し、ページを表示してキャッシュされたページファイルを生成します。同時に、次回アクセスするときにページ ファイルが活躍するようになります。 (インターネット上のテンプレート エンジンと一部の一般的な PHP キャッシュ メカニズム クラスには、通常この機能があります)
時間トリガー キャッシュ:
ファイルが存在するかどうか、およびタイムスタンプが設定された有効期限よりも小さいかどうかを確認します (ファイル変更のタイムスタンプがある場合)。有効期限のタイムスタンプが大きい場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。
コンテンツトリガーキャッシュ:
データが挿入または更新されたときに、PHP キャッシュメカニズムを強制的に更新します。
静的キャッシュ:
ここで言う静的キャッシュとは、HTMLやXMLなどのテキストファイルを直接生成し、更新があった場合に再生成する静的キャッシュを指します。あまり変更のないページに適しているので、勝ちました。ここではそれについて話さないでください。
上記のコンテンツはコードレベルのソリューションであり、他のフレームワークを直接CPするため、変更するのが面倒ですが、次のコンテンツはサーバーです。非コード レベルのキャッシュ ソリューション。これを実現するには複数の関係者の協力が必要です
メモリ キャッシュ:
Memcached は、データベースの負荷を軽減し、アクセスを向上させるために使用される、高性能の分散メモリ オブジェクト PHP キャッシュ メカニズム システムです。動的アプリケーションの速度を向上させます。
PHP バッファ:
eaccelerator、apc、phpa、xcache があります。これらについては説明しませんが、これを知っていれば問題ありません
MYSQL キャッシュ:
これは非コードレベルと考えられます。クラシックデータベースはこの方法を使用します。以下の実行時間を見てください。0.09xxxなど
青いやつ、2G MYISAMテーブルに基づいて変更された部分を投稿します。 0.05Sを1年近く変えているそうです
リバースプロキシベースのWebキャッシュ:
Nginx、SQUID、mod_proxyなど(apache2以降はmod_proxyとmod_cacheに分かれています)
NGINXの例
使用法 Google がいくつかの PHP キャッシュ技術メソッドを見つけました
APC とファイル キャッシュを実装する PHP キャッシュ実装を送ってください Cache_Abstract を継承することで、サードパーティのキャッシュ ツールを呼び出すことができます。
shindigのキャッシュクラスとapcを参照してください。