ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルの 9 つの主要なキャッシュ テクノロジの概要
1. 全ページ静的キャッシュ
つまり、すべてのページは HTML 静的ページに生成され、ユーザーがアクセスすると、PHP サーバーの解析プロセスを経ることなく、静的ページに直接アクセスされます。この方法は、dedecms などの CMS システムでより一般的です。
より一般的に使用される実装方法は、出力キャッシュを使用することです:
Ob_start()
******実行するコード************
$content = Ob_get_contents();
****キャッシュされたコンテンツを HTML ファイルに書き込みます*****
Ob_end_clean();
2. 部分的なページのキャッシュ
この方法は、ページの頻繁に変更されない部分を静的にキャッシュしますが、頻繁に変更されるブロックはキャッシュされず、最終的には ob_get_contents に似たメソッド、または ESI のようなものを使用してまとめられて表示されます。フラグメント キャッシュ戦略は、動的ページ内の比較的静的なフラグメントをキャッシュするために使用されます (ESI テクノロジについては Baidu にお問い合わせください。ここでは詳しく説明しません)。
この方法は、ショッピング モールの商品ページなどで使用できます。
3. データのキャッシュ
その名の通り、データをキャッシュする方法で、例えばモール内の商品情報を商品IDでリクエストすると、店舗情報や商品情報などのデータが取得されます。これらのデータは php ファイルにキャッシュすることができ、ファイル名には一意の識別子を作成するための製品 ID が含まれており、次回この製品を表示したいときに、データベースにクエリすることなく、まずこのファイル内の情報を直接調整します。 ; 実際、キャッシュ ファイルにキャッシュされているのは php 配列か何かです。この方法はEcmallモールシステムで使用されています;
4. クエリキャッシュ実際、これはクエリ ステートメントに従ってキャッシュするというデータ キャッシュと同じ考え方で、クエリによって取得されたデータをファイルにキャッシュし、次回同じクエリが発生したときにデータが直接転送されます。このファイルが最初にキャッシュされ、それ以上のデータはキャッシュされません。ただし、ここでのキャッシュ ファイル名は、一意の識別子を確立するためにクエリ ステートメントに基づく必要がある場合があります。 時間の変化に基づいたキャッシュ
実際には、これは実際のキャッシュ方法ではありません。上記のキャッシュ テクノロジ 2、3、および 4 は通常、時間変更の判断を使用します。つまり、キャッシュされたファイルの有効時間を設定する必要があります。この有効時間内であれば、同じアクセスが可能です。最初にキャッシュ ファイルの内容が取得されますが、設定されたキャッシュ時間を超えると、データベースからデータを再取得する必要があり、最新のキャッシュ ファイルが作成されます。 2時間ごとに更新されます
5. コンテンツの変更に応じてキャッシュしますこれは独立したキャッシュ テクノロジではなく、組み合わせて使用する必要があります。つまり、データベースのコンテンツが変更されると、キャッシュ ファイルがすぐに更新されます。 たとえば、トラフィックが多く、商品が多いモールでは、商品テーブルは比較的大きくなければならず、このテーブルへの負担も大きくなります。
販売者がバックグラウンドで製品情報を変更する場合、[保存] をクリックすると、同時にキャッシュ ファイルが更新されます。その後、購入者が製品情報にアクセスすると、実際には静的なページにアクセスする必要がなくなります。データベース想像してみてください。商品ページがキャッシュされていない場合、商品にアクセスするたびにデータベースをチェックする必要があり、100,000 人がその商品をオンラインで閲覧すると、サーバーに大きな負荷がかかります。 6. メモリキャッシュ
これに関して最初に思いつくのは、Memcached です。memcached は、高性能の分散メモリ キャッシュ サーバーです。 一般的な使用目的は、データベース クエリ結果をキャッシュすることでデータベース アクセスの数を減らし、動的 Web アプリケーションの速度とスケーラビリティを向上させることです。
キャッシュする必要がある情報をシステム メモリにキャッシュします。情報を取得する必要がある場合、より一般的に使用される方法はキー -> 値です。 $memcachehost = '192.168.6.191';
$memcacheport = 11211;$memcachelife = 60;
$memcache = 新しい Memcache;$memcache->connect($memcachehost,$memcacheport) or die (「接続できませんでした」);
$memcache->set('キー','キャッシュコンテンツ');
$get = $memcache->get($key) //情報を取得します
?>
7.Apacheキャッシュモジュール
Apache をインストールした後は、キャッシュすることができません。外部キャッシュやSquidサーバーでWebアクセラレーションが必要な場合は、当然ながらApacheのインストール時にmod_cacheモジュールが有効化されていることが前提となります。
8.php APC キャッシュ拡張機能
Php には、Windows では php_apc.dll である APC キャッシュ拡張機能があります。まずこのモジュールをロードしてから、php.ini で設定する必要があります。
[APC]
拡張子=php_apc.dll
apc.rfc1867 = オン
アップロード_最大ファイルサイズ = 100M
ポスト最大サイズ = 100M
apc.max_file_size = 200M
アップロード_最大ファイルサイズ = 1000M
Post_max_size = 1000M
max_execution_time = 600; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 30 秒です
max_input_time = 600; 各 PHP ページがデータを受信するために必要な最大時間、デフォルトは 60
Memory_limit = 128M; 各 PHP ページが消費する最大メモリ、デフォルトは 8M
9. オペコードキャッシュ
phpの実行プロセスは次の図に示すことができることがわかります:
最初に PHP コードがトークンに解析され、次にオペコード コードにコンパイルされ、最後にオペコード コードが実行されて結果が返されます。したがって、同じ PHP ファイルの場合、そのオペコード コードは初回実行時にキャッシュできます。次回ページが実行されるとき、キャッシュ内のオペコード コードを直接見つけて、中間ステップを必要とせずに最後のステップを直接実行します。
よりよく知られているものは、XCache、Turck MM Cache、PHP Accelerator などです。