ホームページ >バックエンド開発 >PHPチュートリアル >PHPはキャッシュラインを返さないのでしょうか?複数の実装_PHP チュートリアル
phpはキャッシュラインを返さないのでしょうか?複数の実装
1. ユニバーサルキャッシュテクノロジー:
データキャッシュ:ここで言うデータキャッシュとは、ページにアクセスするたびに、まず対応するキャッシュデータが存在するかどうかを検出し、データベースに接続してデータを取得します。シリアル化後、クエリ結果をファイルに保存すると、今後は同じクエリ結果がキャッシュ テーブルまたはファイルから直接取得されます。
最も広く使用されている例は、結果 ID をテーブルにキャッシュし、次回同じキーワードを検索するときに最初にキャッシュ テーブルを検索する Discuz の検索機能です。
複数のテーブルが関連付けられている場合、配列を生成し、必要に応じて配列を分解して、テーブルを 1 つだけ読み取るという一般的な方法を採用します。 2 つの欠点があります。データの同期にはさらに多くの手順が必要であり、データベースが常にボトルネックになります。速度を優先することが重要です。
2. ページキャッシュ:
ページにアクセスするたびに、まず対応するキャッシュされたページファイルが存在するかどうかを検出し、存在しない場合はデータベースに接続してデータを取得し、ページを表示すると同時にキャッシュされたページファイルを生成します。次回アクセスしたときにページ ファイルが有効になることを確認します。 (インターネット上のテンプレート エンジンと一部の一般的な PHP キャッシュ メカニズム クラスには通常、この機能があります)
3. 時間トリガーキャッシュ:
ファイルが存在し、タイムスタンプが設定された有効期限よりも小さいかどうかを確認し、ファイル変更タイムスタンプが現在のタイムスタンプから有効期限タイムスタンプを引いた値より大きい場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。
4. コンテンツトリガーキャッシュ:
データを挿入または更新するときに、PHP キャッシュメカニズムを強制的に更新します。
5. 静的キャッシュ:
ここでいう静的キャッシュとは、HTMLやXMLなどのテキストファイルを静的に直接生成し、更新があったときに再生成することを指し、あまり変化のないページに適しているので、ここでは触れません。
6、メモリキャッシュ:
Memcached は、高性能の分散メモリ オブジェクト PHP キャッシュ メカニズム システムであり、データベースの負荷を軽減し、動的アプリケーションでのアクセス速度を向上させるために使用されます。
7. PHP バッファ:
eaccelerator、apc、phpa、xcache などがありますが、これらについては話さずに、そのようなものがあることを知っていれば大丈夫です。
8、MYSQLキャッシュ:
これは非コードレベルとも考えられます。クラシックデータベースはこの方法を使用します。以下の実行時間を見ると、0.09xxxのようです。 9. リバースプロキシに基づく Web キャッシュ:
Nginx、SQUID、mod_proxyなど(apache2以降はmod_proxyとmod_cacheに分かれています)
10. DNS ポーリング: BIND はオープンソースの DNS サーバー ソフトウェアです。これについては、皆さん自身で調べてみてください。 chinacache などの一部の大手 Web サイトがこれを行っていることは知っています。簡単に言えば、同じページまたはファイルが異なるサーバーにキャッシュされ、北と南に従って適切なサーバーに自動的に解析されます。
www.bkjia.com