ホームページ  >  記事  >  バックエンド開発  >  PHP のキャッシュ テクノロジとは何ですか?

PHP のキャッシュ テクノロジとは何ですか?

一个新手
一个新手オリジナル
2017-09-06 17:45:107590ブラウズ

PHP キャッシュ テクノロジには、1. ページ全体の静的キャッシュ、3. データ キャッシュ、5. コンテンツ変更に基づくキャッシュ、7. Apache キャッシュ モジュールが含まれます。 ; 8. php APC キャッシュ拡張機能。

PHP のキャッシュ テクノロジとは何ですか?

PHP キャッシュには、PHP コンパイル キャッシュと PHP データ キャッシュが含まれます。 PHP は、コンパイルと実行を同時に行うインタープリター型言語です。この動作モードの利点は、プログラムの変更が非常に便利であることですが、動作効率が非常に低いことです。

この状況に対処するために 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 を参照してください。ここでは詳しく説明しません)。

このメソッドは、たとえばモールの商品ページで使用できます。

名前が示すように、これは、たとえば、モール内の特定の商品情報をキャッシュする方法です。モールからリクエストを行うと、店舗情報や商品情報などのデータが取得されます。この際、ファイル名に商品IDを含めてキャッシュすることができます。固有の識別子を作成するには、次に誰かがこの製品を表示したいときに、まずデータベースにクエリせずにこのファイル内の情報を直接調整します。実際には、キャッシュ ファイルにキャッシュされているのは

です。このメソッドは Ecmall モール システムで使用されます。

4. クエリ キャッシュ

実際、これはクエリ ステートメントに従ってキャッシュするという考え方と同じです。次回同じクエリが発生した場合、データは最初にこのファイルから直接転送されますが、ここでのキャッシュ ファイル名は、一意の識別子を確立するためにクエリ ステートメントに基づく必要がある場合があります。 ;

時間変化に基づくキャッシュ

実際には、これは上記の 2 と 3 のキャッシュ方法ではありません。キャッシュ テクノロジは通常、時間変化の判断を使用します。つまり、キャッシュされたファイルに有効な時間を設定する必要があります。この有効時間内であれば、同じアクセスは最初にキャッシュされたファイルの内容を取得しますが、設定されたキャッシュ時間を超えると、最初にキャッシュされたファイルをデータベースから取得して生成する必要があります。最新のキャッシュ ファイル。たとえば、モールのホームページを 2 時間ごとに更新するように設定しました。

これは、独立したキャッシュではなく、複数のテクノロジーを組み合わせて使用​​する必要があります。 、データベースの内容が変更されると、キャッシュ ファイルがすぐに更新されます

たとえば、人の流れが多く、多くの商品があるショッピング モールでは、商品テーブルは比較的大きくなければならず、このテーブルへの負担も大きくなります。商品表示ページはページキャッシュできます。販売者がバックグラウンドで商品情報を変更すると、購入者が商品にアクセスすると同時にキャッシュファイルが更新されます。実際に、データベースにアクセスすることなく、静的なページにアクセスします。想像してみてください。商品ページがキャッシュされていない場合、100,000 人が商品を閲覧するたびにデータベースを確認する必要があります。製品をオンラインにすると、サーバーへの負荷が大きくなります

6. メモリ キャッシング

これに関して最初に思い浮かぶのは、高性能の分散メモリ キャッシュ サーバーである Memcached です。 一般的な使用目的は、データベース クエリ結果をキャッシュすることでデータベース アクセスの数を減らし、動的 ​​Web アプリケーションの速度とスケーラビリティを向上させることです。

システム メモリにキャッシュする必要がある情報をキャッシュします。情報を取得する必要がある場合、より一般的に使用される方法は、キー -> 値メソッドです。 . apache キャッシュ モジュール

Apache をインストールした後は、キャッシュすることができません。外部キャッシュやSquidサーバーでWebアクセラレーションが必要な場合は、当然ながらApacheのインストール時にmod_cacheモジュールが有効化されていることが前提となります。

Apacheをインストールする場合: ./configure –enable-cache –enable-disk-cache –enable-mem-cache

8、php APCキャッシュ拡張機能

Php には APC キャッシュ拡張機能があり、Windows では php_apc.dll です。まずこのモジュールをロードしてから、php.ini で設定する必要があります:

[apc]
extension=php_apc.dll
apc.rfc1867 = on
Upload_max_filesize = 100M
post_max_size = 100M
apc.max_file_size = 200M
Upload_max_filesize = 1000M post_max_size = 1000M
max_execution_time = 600; 各 PHP ページの実行時間の最大値 (秒)、デフォルトは 3 0 秒
max_input_time = 600; 各 PHP ページがデータを受信するのに必要な最大時間、デフォルトは 60
Memory_limit = 128M; 各 PHP ページが消費する最大メモリ、デフォルトは 8M

です。 PHP の実行プロセスは次のように使用できることを示しています

最初に PHP コードがトークンに解析され、次にオペコード コードにコンパイルされ、最後にオペコード コードが実行されて結果が返されます。同じ php ファイルを初めて実行するときに、そのオペコード コードをキャッシュできます。次回このページを実行するときは、キャッシュ内のオペコード コードを直接見つけて、中間ステップを必要とせずに最後のステップを直接実行します。

よりよく知られているものは、XCache、Turck MM Cache、PHP Accelerator などです。 PHP のキャッシュ テクノロジとは何ですか?

関連知識の詳細については、

PHP 中国語 Web サイト

をご覧ください。 !

以上がPHP のキャッシュ テクノロジとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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