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