ほとんどの場合、当社の Web サイトはサイト データ ストレージのコンテナとしてデータベースを使用します。 SQL クエリを実行するときの一般的なプロセスは次のとおりです。データベースに接続します - > SQL クエリを準備します - > データベースにクエリを送信します - > データベースから返された結果を取得します - > データベース接続を閉じます。ただし、データベース内の一部のデータは完全に静的であるか、頻繁に変更されません。キャッシュ システムは SQL クエリの結果をより高速なストレージ システムにキャッシュするため、頻繁なデータベース操作を回避し、プログラムの実行時間を大幅に短縮できます。後で処理してください。
一般的に使用される PHP キャッシュ テクノロジ
PHP キャッシュ テクノロジ データ キャッシュ:
ここで説明するデータ キャッシュは、データベース クエリ キャッシュを指します。ページにアクセスすると、まず対応するキャッシュ データが存在するかどうかを確認し、存在しない場合はデータベースに接続してデータを取得し、クエリ結果をシリアル化してファイルに保存します。クエリ結果はキャッシュ ファイル get から直接取得されます。
PHP キャッシュ テクノロジ ページ キャッシュ:
ページにアクセスするたびに、対応するキャッシュされたページ ファイルが存在するかどうかが最初に検出されます。存在しない場合は、接続します。をデータベースに保存し、データを取得し、ページを表示し、同時にキャッシュ ページ ファイルを生成します。これにより、次回アクセスするときにページ ファイルが役割を果たします。 (インターネット上のテンプレート エンジンやいくつかの一般的なキャッシュ クラスには通常この機能があります)
PHP キャッシュ テクノロジ メモリ キャッシュ:
ここでは紹介しません。
Memcached は、データベースの負荷を軽減し、動的アプリケーションのアクセス速度を向上させるために使用される、高性能の分散メモリ オブジェクト キャッシュ システムです。
dbcached は、Memcached と NMDB に基づく分散キー値データベース メモリ キャッシュ システムです。
上記のキャッシュ テクノロジは頻繁なデータベース クエリの問題を十分に解決できますが、データがタイムリーではないという欠点があります。ここでは、私がプロジェクトでよく使用する方法を示します。
PHP キャッシュ テクノロジの時間トリガー キャッシュ:
ファイルが存在するかどうか、およびタイムスタンプが設定された有効期限よりも小さいかどうかを確認します。ファイル変更のタイムスタンプが現在のタイムスタンプからタイムスタンプを引いた値より大きいかどうかを確認します。有効期限のタイムスタンプがある場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。
設定時間内にデータ更新の要否を判断せず、設定時間経過後にキャッシュを更新します。上記は、適時性の要件が高くない場合の使用にのみ適しています。それ以外の場合は、以下を参照してください。
PHP キャッシュ テクノロジのコンテンツ トリガー キャッシュ:
データが挿入または更新されると、キャッシュは強制的に更新されます。
ここでは、大量のデータを頻繁に更新する必要がある場合、最終的にはディスクの読み取りおよび書き込み操作が必要になることがわかります。これを解決するにはどうすればよいですか? 私は通常、すべてのコンテンツをキャッシュするのではなく、頻繁に変更されない一部のコンテンツをキャッシュして問題を解決します。ただし、負荷が高い場合は、共有メモリをキャッシュ システムとして使用するのが最善です。
現時点では、PHP キャッシュが解決策になる可能性がありますが、その欠点は、各リクエストを PHP で解析する必要があるため、この場合、静的キャッシュの方が効率の問題がさらに深刻になることです。使用される場合があります。
PHP キャッシュ技術の静的キャッシュ
ここで言う静的キャッシュとは、HTML キャッシュを指しますが、通常、データを更新する必要があるかどうかを判断する必要はありません。 HTML が使用される場面は、通常、内容が頻繁に変更されないページです。データが更新された場合は、HTML を強制的に更新するだけです。