ホームページ >バックエンド開発 >PHPチュートリアル >キャッシュハットトリック:Zend Opcache、Etags、およびクエリキャッシング
この記事では、一般的なPHPキャッシング技術を調査します:Zend opcache、有効期限がヘッダー、MySQLクエリキャッシュ。 後続の記事でさらに戦略を掘り下げます
zend opcache、有効期限がヘッダー、mysqlクエリキャッシングは、リクエストライフサイクルを合理化することにより、phpアプリケーション速度を大幅に向上させます。 PHP 5.5で事前にインストールされたZend Opcacheは、共有メモリに事前コンパイルされたバイトコードを保存し、繰り返されるスクリプトの解析と編集を回避します。
ファイル取得:PHPファイルはサーバーのファイルシステムからフェッチされています。 語彙分析:コードは解析のためにトークンに変換されます。 解析:コードの構文エラーがチェックされている。
OpCode Generation:トークンは実行可能なマシンコードに変換されます。
opcacheの有効化:
ファイルを編集して、uncomment
、PHPサービスを再起動します。 5.5以前のPHPバージョンの場合、PECLを使用してインストールしてください:。php --version
phpinfo()
または):
キー設定:php.ini
opcache.enable=1
:共有メモリサイズ(MB)。サーバーのリソースとアプリケーションのニーズに基づいて調整します
pecl install zendopcache-beta
php.ini
:キャッシュされたファイルの最大数。/etc/php5/mods-available/opcache.ini
opcache.memory_consumption
:分解器をスピードアップします(1に設定)。opcache.interned_strings_buffer
Opcacheのステータスとパフォーマンスを監視するには、
ヘッダーの有効期限(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ドキュメントを参照してください。)
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%";
。
クエリキャッシュの考慮事項:
SELECT
クエリでのみ動作します。結論: この記事では、基本的なPHPキャッシング戦略を導入しました。 パート2では、ワニス、memcached、PHPキャッシングライブラリなどの高度な技術について説明します。
よくある質問(FAQ):
(これらはメインテキスト内で既に回答されているので、ここで繰り返す必要はありません。)以上がキャッシュハットトリック:Zend Opcache、Etags、およびクエリキャッシングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。