ホームページ  >  記事  >  バックエンド開発  >  PHP キャッシュの 9 つの方法

PHP キャッシュの 9 つの方法

墨辰丷
墨辰丷オリジナル
2018-06-07 11:37:332985ブラウズ

この記事では主に 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 モール システムで使用されます。

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

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

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

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

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

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

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

6. メモリ キャッシング

これに関しては、誰もが最初に 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アクセラレーションが必要な場合は、当然ながらApacheのインストール時にmod_cacheモジュールが有効化されていることが前提となります。

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

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

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

   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, Opcode Cache#。

##PHP の実行プロセスは次の図に示すことができることがわかります:

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

要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

php は関数に必要なパラメーターが存在するかどうかを判断します

PHP (反復再帰) ) 無制限の分類を実現するための詳細な説明

php は中国語ファイルのダウンロードをサポートします

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

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