ホームページ >バックエンド開発 >PHPチュートリアル >キャッシュハットトリック:Zend Opcache、Etags、およびクエリキャッシング

キャッシュハットトリック:Zend Opcache、Etags、およびクエリキャッシング

Lisa Kudrow
Lisa Kudrowオリジナル
2025-02-17 09:29:12679ブラウズ

この記事では、一般的なPHPキャッシング技術を調査します:Zend opcache、有効期限がヘッダー、MySQLクエリキャッシュ。 後続の記事でさらに戦略を掘り下げます

Caching Hat-trick: Zend Opcache, Etags and Query Caching

重要な利点:

zend opcache、有効期限がヘッダー、mysqlクエリキャッシングは、リクエストライフサイクルを合理化することにより、phpアプリケーション速度を大幅に向上させます。 PHP 5.5で事前にインストールされたZend Opcacheは、共有メモリに事前コンパイルされたバイトコードを保存し、繰り返されるスクリプトの解析と編集を回避します。
    ヘッダーの有効期限(Apache/nginx)静的資産のブラウザキャッシング(画像、CSS、JavaScript)、サーバーの負荷の削減、パフォーマンスの改善。
  • mysqlクエリキャッシングストアは、SQLクエリとその結果を解析し、その後の同一のクエリを加速し、データベース圧力を低減します。
  • PHPリクエストのライフサイクルを理解する:
  • キャッシングに飛び込む前に、PHPリクエストプロセスを確認しましょう:

ファイル取得:PHPファイルはサーバーのファイルシステムからフェッチされています。 語彙分析:コードは解析のためにトークンに変換されます。 解析:コードの構文エラーがチェックされている。

OpCode Generation:トークンは実行可能なマシンコードに変換されます。

    実行:マシンコードが実行されます。
  1. キャッシュ技術は、手順2〜4をバイパスし、リソースの消費を最小限に抑え、応答時間の改善によりパフォーマンスを最適化します。
  2. zend opcache:
  3. Zend Opcacheは、PHP 5.5以降で容易に利用できるパフォーマンスエンハンサーです。
  4. (「zend opcache」をチェック)または

opcacheの有効化:

ファイルを編集して、uncomment

、PHPサービスを再起動します。 5.5以前のPHPバージョンの場合、PECLを使用してインストールしてください:

php --version phpinfo()

opcache configuration(

または):

キー設定:php.ini opcache.enable=1

:共有メモリサイズ(MB)。サーバーのリソースとアプリケーションのニーズに基づいて調整します pecl install zendopcache-beta

:インターン文字列(MB)のメモリ。

php.ini:キャッシュされたファイルの最大数。/etc/php5/mods-available/opcache.ini

:ファイルの変更をチェックするための頻度(秒)(常にチェックする場合は0、開発に最適です)。

:キャッシュ(バイト)から大きなファイルを除外します。
  • opcache.memory_consumption:分解器をスピードアップします(1に設定)。
  • opcache.interned_strings_bufferOpcacheのステータスとパフォーマンスを監視するには、
  • およびその
  • を使用してください。

    Caching Hat-trick: Zend Opcache, Etags and Query Caching

    ヘッダーの有効期限(apache):

    Apacheのmod_expiresモジュールは、静的資産のブラウザキャッシングを有効にします。使用して有効にしてください:

    <code class="language-bash">sudo a2enmod expires
    sudo service apache2 restart</code>

    Apache Virtual Host構成で有効期限ルールを構成:

    <code class="language-apache"><ifmodule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 day"
    ExpiresByType image/png "access plus 10 days"
    ExpiresByType text/css "access plus 25 days"
    </ifmodule></code>

    (nginx構成については、nginxドキュメントを参照してください。)

    Caching Hat-trick: Zend Opcache, Etags and Query Caching

    mysql queryキャッシュ:

    読みやすいアプリケーションの場合、MySQLのクエリキャッシュはパフォーマンスを劇的に改善する可能性があります。 mysqlバージョン(mysql --version)を確認してください。 5.6.8以降のバージョンの場合、my.cnf(例えば、/etc/mysql/my.cnf)で有効にしてください:

    <code class="language-mysql"># * Query Cache Configuration
    query_cache_type             = ON
    query_cache_min_res_unit     = 4096
    query_cache_limit            = 1M
    query_cache_size             = 16M
    query_cache_wlock_invalidate = OFF</code>

    サーバーの容量と更新頻度に基づいて設定を調整します。 SHOW STATUS LIKE "qcache%";

    でキャッシュの使用を監視します

    Caching Hat-trick: Zend Opcache, Etags and Query Caching

    クエリキャッシュの考慮事項:

    • SELECTクエリでのみ動作します。
    • クエリは、キャッシュヒットの場合は同一でなければなりません
    • 唯一の決定論的クエリはキャッシュ可能です。
    • テーブルの更新は、キャッシュを無効にします。

    結論: この記事では、基本的なPHPキャッシング戦略を導入しました。 パート2では、ワニス、memcached、PHPキャッシングライブラリなどの高度な技術について説明します。

    よくある質問(FAQ):

    (これらはメインテキスト内で既に回答されているので、ここで繰り返す必要はありません。)

以上がキャッシュハットトリック:Zend Opcache、Etags、およびクエリキャッシングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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