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