Rumah >pembangunan bahagian belakang >tutorial php >Caching Hat-Trick: Zend Opcache, Etags dan Query Caching

Caching Hat-Trick: Zend Opcache, Etags dan Query Caching

Lisa Kudrow
Lisa Kudrowasal
2025-02-17 09:29:12680semak imbas

Artikel ini meneroka teknik cache PHP yang biasa: Zend Opcache, Tamat Tudung, dan Caching Query MySQL. Kami akan menyelidiki strategi selanjutnya dalam artikel berikutnya.

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

Kelebihan utama:

    Zend Opcache, tamat pengepala, dan caching pertanyaan MySQL dengan ketara meningkatkan kelajuan aplikasi PHP dengan menyelaraskan kitaran hayat permintaan.
  • Pra-dipasang dalam Php 5.5, Zend Opcache menyimpan bytecode pra-disusun dalam memori bersama, mengelakkan penguraian skrip berulang dan kompilasi.
  • tamat pengepala (Apache/nginx) Leverage penyemak imbas untuk aset statik (imej, CSS, JavaScript), mengurangkan beban pelayan dan meningkatkan prestasi.
  • MySQL Query Caching Stores menghidupkan pertanyaan SQL dan hasilnya, mempercepatkan pertanyaan yang sama dan mengurangkan tekanan pangkalan data.
Memahami kitaran hayat permintaan PHP:

Sebelum menyelam ke dalam caching, mari kita semak proses permintaan PHP:

pengambilan fail: Fail PHP diambil dari sistem fail pelayan.
  1. Analisis leksikal: Kod ini diubah menjadi token untuk parsing.
  2. parsing: Kod diperiksa untuk kesilapan sintaks.
  3. Generasi Opcode: Token ditukar menjadi kod mesin yang boleh dilaksanakan.
  4. Pelaksanaan: Kod mesin dilaksanakan.
  5. Teknik caching mengoptimumkan prestasi dengan memintas langkah 2-4, meminimumkan penggunaan sumber dan meningkatkan masa tindak balas.

zend opcache:

Zend Opcache adalah penambah prestasi yang sedia ada untuk PHP 5.5 dan kemudian. Sahkan pemasangan menggunakan

(periksa "Zend Opcache") atau

. php --version phpinfo()

Mengaktifkan Opcache:

edit fail

anda, uncomment

, dan mulakan semula perkhidmatan PHP anda. php.ini opcache.enable=1 untuk versi PHP sebelum 5.5, pasang menggunakan PECL: .

pecl install zendopcache-beta konfigurasi opcache ( atau

):

php.ini Tetapan utama: /etc/php5/mods-available/opcache.ini

: Saiz memori yang dikongsi (MB). Laraskan berdasarkan sumber pelayan dan keperluan aplikasi.

    : Memori untuk rentetan yang diasingkan (MB).
  • opcache.memory_consumption
  • : bilangan maksimum fail cache.
  • opcache.interned_strings_buffer
  • : kekerapan (saat) untuk memeriksa perubahan fail (0 untuk selalu memeriksa, sesuai untuk pembangunan).
  • opcache.max_accelerated_files
  • : tidak termasuk fail besar dari caching (bait).
  • opcache.revalidate_freq
  • : mempercepatkan deconstructors (ditetapkan kepada 1).
  • opcache.max_file_size
  • Gunakan
  • dan opcache.fast_shutdown untuk memantau status dan prestasi Opcache.
  • Caching Hat-trick: Zend Opcache, Etags and Query Caching

    tamat pengepala (Apache):

    Modul Apache membolehkan penyemak imbas aset statik. Dayakannya dengan menggunakan:

    mod_expires Konfigurasikan peraturan tamat dalam konfigurasi hos maya Apache anda:

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

    (Rujuk dokumentasi nginx untuk konfigurasi nginx.)

    <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>

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

    Untuk aplikasi bacaan-berat, cache pertanyaan MySQL dapat meningkatkan prestasi secara dramatik. Semak versi MySQL anda (). Untuk versi 5.6.8 dan kemudian, aktifkannya dalam (mis., ):

    mysql --version Laraskan tetapan berdasarkan kapasiti pelayan anda dan kekerapan kemas kini. Pantau penggunaan cache dengan 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%"; Pertimbangan cache pertanyaan:

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

    hanya berfungsi dengan

    pertanyaan. Pertanyaan mestilah sama untuk hits cache.

      hanya pertanyaan deterministik yang boleh dicatatkan.
    • SELECT Kemas kini jadual membatalkan cache.
    • Kesimpulan:
    • Artikel ini memperkenalkan strategi caching PHP asas. Bahagian 2 akan meneroka teknik canggih seperti perpustakaan varnis, memcached, dan php.

    Soalan -soalan yang sering ditanya (Soalan Lazim): (Ini sudah dijawab dalam teks utama, jadi tidak perlu mengulanginya di sini.)

Atas ialah kandungan terperinci Caching Hat-Trick: Zend Opcache, Etags dan Query Caching. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn