ホームページ  >  記事  >  バックエンド開発  >  PHPで一般的に使用されるキャッシュ方法は何ですか?

PHPで一般的に使用されるキャッシュ方法は何ですか?

青灯夜游
青灯夜游オリジナル
2021-03-29 10:00:474148ブラウズ

PHP で一般的に使用されるキャッシュ方法は次のとおりです: 1. ページ全体の静的キャッシュ、2. ページの部分キャッシュ、3. データ キャッシュ、4. クエリ キャッシュ、5. コンテンツ変更に基づくキャッシュ、6. インメモリキャッシュ キャッシュ; 7. apache キャッシュ モジュール; 8. php APC キャッシュ拡張機能; 9. オペコード キャッシュ。

PHPで一般的に使用されるキャッシュ方法は何ですか?

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

よく使用されるin PHP 9 つの主要なキャッシュ テクノロジの概要

1. フル ページ静的キャッシュ

つまり、すべてのページが HTML 静的ページに生成されます。ユーザーは、PHP サーバーの解析プロセスを経由せずに、静的ページに直接アクセスできます。この方法は、dedecms などの CMS システムでより一般的です;

より一般的な実装方法は、出力キャッシュを使用することです:

Ob_start()
******要运行的代码*******
$content = Ob_get_contents();
****将缓存内容写入html文件
*****Ob_end_clean();

2。ページ部分キャッシュ

このメソッドは、ページのあまり変更されない部分を静的にキャッシュしますが、頻繁に変更されるブロックはキャッシュされず、最終的にまとめられて表示されます。ob_get_contents と同様のメソッドを使用して実装するか、Page を使用できます。 ESI などのフラグメント キャッシュ戦略は、動的ページの比較的静的なフラグメント部分をキャッシュするために使用されます (ESI テクノロジについては Baidu にお問い合わせください。ここでは詳しく説明しません)。

このメソッドは、モールの商品ページなどで使用できます;

3. データ キャッシュ

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

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

4. クエリ キャッシュ

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

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

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

5. コンテンツの変更に応じたキャッシュ

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

##たとえば、人の流れが多く、商品が多いショッピング モールでは、商品テーブルは比較的大きくなければならず、このテーブルへの負担も比較的大きく、商品表示ページをキャッシュすることができます。

販売者がバックグラウンドで製品情報を変更する場合、[保存] をクリックすると、同時にキャッシュ ファイルが更新されます。その後、購入者が製品情報にアクセスすると、実際に製品にアクセスすることになります。データベースにアクセスしない静的ページ;

想像してみてください、商品ページがキャッシュされていない場合、商品にアクセスするたびにデータベースをチェックする必要があります。オンラインではサーバーに大きな負荷がかかります;

6. メモリ キャッシング

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

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

<?php 
$memcachehost = &#39;192.168.6.191&#39;;
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
$memcache->set(&#39;key&#39;,&#39;缓存的内容&#39;);
$get = $memcache->get($key);  //获取信息
?>

7. Apache キャッシュ モジュール

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

Apache をインストールする場合:

./configure –enable-cache –enable-disk-cache –enable-mem-cache

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

#Php には、Windows では php_apc.dll である APC キャッシュ拡張機能があります。最初にこのモジュールをロードしてから、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页面运行的最大时间值(秒),默认30秒 
max_input_time = 600 ;  每个PHP页面接收数据所需的最大时间,默认60 
memory_limit = 128M ;  每个PHP页面所吃掉的最大内存,默认8M

9 、オペコード キャッシュ

最初に PHP コードがトークンに解析され、次にオペコード コードにコンパイルされ、最後にオペコード コードが実行されて結果が返されます。したがって、同じ PHP ファイルに対して、

オペコード コード、次回このページを実行すると、キャッシュ内でオペコード コードが直接検索され、最後のステップが必要なく直接実行されます。中間ステップ用。

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPで一般的に使用されるキャッシュ方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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