Anda perlu memahami perbedaan yang jelas antara kedua produk ini untuk memahami cara menggunakannya.
- APC adalah OPCode Cache dan Fast Backend
- Memcache hanyalah Backend Cepat
Menggunakan APC sebagai OPCode Cache
Cukup instal modul di server Anda
pecl install apc
Dan aktifkan di php.ini
echo "extension=apc.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini (Debian)
Anda kemudian mengaktifkan dan menyempurnakan konfigurasi runtime yang sesuai, misalnya.
apc.enonaktifkan
apc.shm_segments
apc.shm_size
apc.optimisasi
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...
Kemudian restart PHP / Apache
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Setelah itu, tidak ada lagi yang bisa dilakukan. Konfirmasikan APC diaktifkan dengan cepat phpinfo()
- tetapi sebaliknya, pada titik ini, bagian cache OPCode dari APC aktif.
Tidak ada yang perlu dikonfigurasi di sisi Magento.
Menggunakan APC sebagai Backend Cepat
Anda perlu menambahkan yang berikut ke ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
Lalu siram cache toko yang ada. Untuk memverifikasi itu berfungsi, muat halaman di front-end dan ./var/cache
direktori harus tetap kosong.
Menggunakan Memcache sebagai Backend Cepat
Anda harus menginstal Memcache sebagai ekstensi PHP, dan menginstal Memcache Daemon masing-masing (Memcached) di server Anda.
pecl install memcache
Dan aktifkan di php.ini Anda
echo "extension=memcache.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=memcache.so" >> /etc/php5/conf.d/20memcache.ini (Debian)
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Kemudian instal Memcached di server. Untuk RH / Centos, sesuaikan URL agar sesuai dengan versi rilis dan arsitektur CPU Anda.
rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum --enablerepo=rpmforge install memcached
apt-get install memcached (Debian)
Kemudian modifikasi Magento untuk menggunakan Memcache sebagai backend cepat, ubah jalur soket ke koneksi TCP / IP yang sesuai.
<cache>
<slow_backend>database</slow_backend>
<fast_backend>memcached</fast_backend>
<fast_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</fast_backend_options>
<backend>memcached</backend>
<memcached>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</cache>
Peringatan Memcache dan penandaan - apa yang disimpannya
Memcache hanya mendukung satu tingkat hubungan nilai kunci, sehingga tidak dapat menyimpan tag cache Magento (yang digunakan untuk menyiram data cache secara independen). Akibatnya, Anda harus menentukan a slow_backend
untuk mempertahankan hubungan tag konten cache, atau tidak mendefinisikannya sama sekali.
Jika Anda mendefinisikan a slow_backend
, Anda menjalankan risiko tag cache semakin besar sehingga kinerja dinegasikan; ada juga masalah inheren yang Anda tidak dapat skala di beberapa server jika setiap server mempertahankan tag cache mereka sendiri.
Jadi ketika menggunakan Memcache, pendekatan yang lebih baik (dengan peringatan Anda tidak dapat membersihkan cache secara mandiri), adalah tidak repot menggunakan slow_backend
.
Dalam hal ini, kami sarankan menghapus <slow_backend>database</slow_backend>
dan menggantinya dengan:
<slow_backend>Memcached</slow_backend>
<slow_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</slow_backend_options>
Ini akan merusak / menonaktifkan level 2 caching (dan mencegah penyimpanan tag), tetapi masih memungkinkan kinerja Memcache.
Yang digunakan
Jika ini adalah penyebaran server tunggal - tidak ada salahnya hanya menggunakan APC untuk semuanya.
Jika ini adalah set-up terdistribusi - maka Anda harus menggunakan Memcache sebagai backend cepat (sehingga semua mesin dapat mengakses toko umum).
Yang lebih memprihatinkan adalah bahwa jika penyedia hosting Anda tidak dapat memberi tahu Anda pengaturan yang tepat untuk digunakan, Anda tentu saja dengan host yang salah.
Atribut: sonassi.com , php.net , repoforge.org