ホームページ  >  記事  >  取得する必要があるいくつかの主要な PHP キャッシュ テクノロジ

取得する必要があるいくつかの主要な PHP キャッシュ テクノロジ

小云云
小云云オリジナル
2017-11-04 16:45:431650ブラウズ

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

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

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

Ob_start()

******実行されるコード***** * *

$content = Ob_get_contents();

****キャッシュされたコンテンツを HTML ファイルに書き込みます*****

Ob_end_clean();

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

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

3. データ キャッシュ

名前が示すように、たとえばモールで特定の商品情報をリクエストする場合にデータをキャッシュする方法です。製品 ID を使用すると、店舗情報、製品情報などのデータを取得できます。この時点で、ファイル名に製品 ID が含まれているため、次回必要なときにこれらのデータをキャッシュできます。この商品を表示するには、まずデータベースに問い合わせることなく、このファイル内の情報を直接調整します。実際、キャッシュ ファイルにキャッシュされているのは php 配列です。

このメソッドは Ecmall モール システムで使用されます。 . クエリ キャッシュ

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

実際には、これは実際のキャッシュではありません。上記の 2、3、4 のキャッシュ技術では、通常、キャッシュされたファイルの有効時間を設定する必要があり、この有効時間内で同じアクセスがキャッシュされたコンテンツを取得します。ただし、設定したキャッシュ時間を超えると、データベースから再度データを取得して最新のキャッシュ ファイルを作成する必要があります。たとえば、モールのホームページは 2 時間ごとに更新されるように設定します。 ;

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

これは独立したキャッシュ テクノロジではなく、組み合わせて使用​​する必要があります。つまり、データベースのコンテンツが変更されると、キャッシュ ファイルがすぐに更新されます。トラフィックが多く、商品が多いモールでは、商品テーブルは比較的大きくなければならず、このテーブルへの負担も比較的大きくなります。販売者が商品を変更する場合、商品表示ページのページ キャッシュを変更することができます。バックグラウンドで情報を確認するには、[保存] をクリックします。同時にキャッシュ ファイルも更新されます。購入者は実際に静的なページにアクセスするため、データベースに再度アクセスする必要はありません。

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

6.

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

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

$memcachehost = '192.168.6.191';

$memcacheport = 11211;

$memcachelife = 60;

$memcache = new Memcache;

$memcache->connect($memcachehost,$memcacheport) or die (「接続できませんでした)」 ");

$ memcache->set('key','cached content');

$get = $memcache->get($key); //情報を取得します

?>

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