ホームページ  >  記事  >  バックエンド開発  >  PHP9の大規模キャッシュテクノロジー

PHP9の大規模キャッシュテクノロジー

PHPz
PHPzオリジナル
2017-04-04 15:22:491332ブラウズ

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このメソッドはモールシステムで使用されます。4. クエリキャッシュ

実際、これはクエリステートメントに従ってキャッシュするというものです。ファイル内のクエリは、次回同じクエリに遭遇したときにこのファイルから直接キャッシュされ、データベースはチェックされませんが、ここでのキャッシュ ファイル名はそれに基づく必要がある場合があります。一意の識別子を確立するためのクエリ ステートメント。 時間変化に基づくキャッシュ

実際、これは実際のキャッシュ方法ではありません。キャッシュされたファイルの有効時間を設定します。この有効時間内であれば、同じアクセスで最初にキャッシュされたファイルの内容が取得されますが、設定されたキャッシュ時間を超える場合は、データベースからデータを再取得する必要があります。最新のキャッシュ ファイルを作成します。たとえば、モールのホームページが 2 時間に 1 回更新されるように設定します。

5. コンテンツの変更に応じてキャッシュします。

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

たとえば、人の出入りが多く、商品のテーブルも比較的大きくなる必要があります。重い; 商品表示ページをキャッシュできます。

販売者がバックグラウンドで商品情報を変更すると、購入者が商品情報にアクセスすると同時にキャッシュ ファイルが更新されます。アクセスされるのは静的なページであり、データベースにアクセスする必要はありません。想像してみてください、商品ページがキャッシュされていない場合、商品にアクセスするたびにデータベースにアクセスして確認する必要があります。 100,000 人がオンラインで製品を閲覧すると、サーバーへの負荷が大きくなります これに関して、誰もが最初に考えるのは、

Memcached

ということではないでしょうか。メモリキャッシュサーバー。 一般的な使用目的は、データベース クエリ結果をキャッシュすることでデータベース アクセスの数を減らし、動的 ​​Web アプリケーションの速度とスケーラビリティを向上させることです。

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

key

–>value メソッドです。

$memcachehost = ' 192.168.6.191';

$memcacheport = 11211;

$memcachel

ife = 60;

$memcache = 新しい Memcache;

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

$memcache->

set
('key','キャッシュされたコンテンツ');

$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 で設定する必要があります:

[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 の実行プロセスが使用できることを以下の図に示します。

PHP9の大規模キャッシュテクノロジー


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

よりよく知られているものは、XCache、Turck MM Cache、PHP Accelerator などです。

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

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