ホームページ  >  記事  >  バックエンド開発  >  PHPキャッシュテクノロジー

PHPキャッシュテクノロジー

巴扎黑
巴扎黑オリジナル
2016-11-24 11:55:14922ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。