PHPの各種キャッシュについて知りたいのでアドバイスをお願いします。

WBOY
リリース: 2016-11-19 13:05:22
オリジナル
1495 人が閲覧しました

キャッシュをクリアしたいので、通行人の方にもっとコメントをお願いします
1. 全ページ静的キャッシュ
つまり、すべてのページは HTML 静的ページに生成され、ユーザーがアクセスすると、PHP サーバーの解析プロセスを経ることなく、静的ページに直接アクセスされます。この方法は、dedecms などの CMS システムでより一般的です。

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

Ob_start()
******実行するコード************
$content = Ob_get_contents();
****キャッシュされたコンテンツを HTML ファイルに書き込みます*****
Ob_end_clean();
2. ページの部分キャッシュ
この方法は、ページの頻繁に変更されない部分を静的にキャッシュしますが、頻繁に変更されるブロックはキャッシュされず、最終的には ob_get_contents に似た方法、または ESI フラグメントなどのページを使用してまとめられて表示されます。キャッシュ戦略は、動的ページの比較的静的なフラグメント部分をキャッシュするために使用されます (ESI テクノロジ、Baidu を参照してください。ここでは詳しく説明しません)。

この方法は、ショッピングモールの商品ページなどで使用できます。
3. データのキャッシュ
名前の通り、データをキャッシュする方法で、例えばモール内の商品情報を商品IDでリクエストした際に、店舗情報や商品情報などのデータをphpファイルにキャッシュすることができます。ファイル名には、一意の識別子を作成するための製品 ID が含まれています。次にこの製品を表示する場合、実際にキャッシュにキャッシュされている内容をクエリすることなく、このファイル内の情報を直接調整します。ファイルはphp配列などです;

この方法はEcmallモールのシステムで使用されています

4. クエリキャッシュ
実際、これはクエリ文に従ってキャッシュするというデータ キャッシュと同じ考え方で、クエリによって取得されたデータをファイルにキャッシュし、次回同じクエリが発生したときに、そこからデータが直接転送されます。データベースに戻らずにファイルを確認します。ただし、ここでのキャッシュ ファイル名は、一意の識別子を確立するためにクエリ ステートメントに基づく必要がある場合があります。
時間の変化に基づいたキャッシュ

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

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

想像してみてください。商品ページがキャッシュされていない場合、商品にアクセスするたびにデータベースをチェックする必要があり、100,000 人がその商品をオンラインで閲覧すると、サーバーへの負荷が大きくなります。
6. メモリキャッシュ
これに関して、最初に思い浮かぶのは Memcached です。memcached は、高性能の分散メモリ キャッシュ サーバーです。 一般的な使用目的は、データベース クエリ結果をキャッシュすることでデータベース アクセスの数を減らし、動的 ​​Web アプリケーションの速度とスケーラビリティを向上させることです。

キャッシュする必要がある情報をシステム メモリにキャッシュします。情報を取得する必要がある場合、より一般的に使用される方法は key->value メソッドです。
$memcachehost = '192.168.6.191';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = 新しい Memcache;
$memcache->connect($memcachehost,$memcacheport) or die (「接続できませんでした」);
$memcache->set('キー','キャッシュコンテンツ');
$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]
拡張子=php_apc.dll
apc.rfc1867 = オン
アップロード最大ファイルサイズ = 100M
post_max_size = 100M
apc.max_file_size = 200M
アップロード最大ファイルサイズ = 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.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート