Bunların nasıl kullanılacağını anlamak için bu iki ürün arasındaki açık ayrımı anlamanız gerekir.
- APC bir hem işlem kodu önbellek ve Hızlı arka uç
- Memcache sadece hızlı bir arka uç
APC'yi OPCode Önbelleği olarak kullanma
Modülü sunucunuza kurmanız yeterlidir
pecl install apc
Ve bunu php.ini
echo "extension=apc.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini (Debian)
Daha sonra çalışma zamanı yapılandırmasını etkinleştirip ince ayar yapabilirsiniz , örn.
apc.enabled
apc.shm_segments
apc.shm_size
apc.optimization
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...
Sonra PHP / Apache'yi yeniden başlatın
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Bundan sonra yapacak başka bir şey yok. APC'nin hızlı bir şekilde etkinleştirildiğini onaylayın phpinfo()
- ancak aksi takdirde bu noktada APC'nin OPCode önbellek kısmı etkindir.
Magento'nun tarafında hiçbir şey yapılandırmaya gerek yok.
APC'yi Hızlı Arka Uç Olarak Kullanma
Şunlara aşağıdakileri eklemeniz gerekir: ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
Ardından mevcut mağaza önbelleklerinizi yıkayın. Çalıştığını doğrulamak için ön uca bir sayfa yükleyin; ./var/cache
dizin boş kalmalıdır.
Memcache'i Hızlı Arka Uç Olarak Kullanma
Memcache'i bir PHP uzantısı olarak yüklemeniz ve ilgili Memcache Daemon'u (Memcached) sunucunuza kurmanız gerekir.
pecl install memcache
Ve php.ini dosyasında etkinleştirin
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)
Sonra sunucuya Memcached yükleyin. RH / Centos için URL'yi sürüm sürümünüze ve CPU mimarinize uyacak şekilde ayarlayın.
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)
Daha sonra Memcache'i hızlı bir arka uç olarak kullanmak için Magento'yu değiştirin, soket yolunu TCP / IP bağlantısına uyacak şekilde değiştirin.
<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>
Memcache ve etiketleme uyarıları - ne saklıyor
Memcache yalnızca tek bir anahtar / değer çifti ilişkisini destekler, bu nedenle Magento önbellek etiketlerini (önbellek verilerini bağımsız olarak temizlemek için kullanılan) depolayamaz. Sonuç olarak, slow_backend
önbellek içerik etiketi ilişkisini sürdürmek için bir belirtmeniz gerekir veya hiç tanımlamamanız gerekir.
A tanımlarsanız slow_backend
, performansın reddedileceği kadar büyük önbellek etiketlerinin riskini alırsınız; her sunucu kendi önbellek etiketlerini koruyorsa, birden fazla sunucuda ölçeklendirememenizin doğasında var olan bir sorun vardır.
Bu yüzden Memcache kullanırken, daha iyi bir yaklaşım (önbellekle önbellekleri bağımsız olarak yıkayamazsınız) slow_backend
,.
Bu durumda, kaldırmanızı <slow_backend>database</slow_backend>
ve değiştirmenizi öneririz :
<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>
Bu, 2. önbellek düzeyini keser / devre dışı bırakır (ve etiket depolamayı önler), ancak yine de Memcache'in performansına izin verir.
Hangisi kullanılır
Tek bir sunucu dağıtımı varsa - her şey için sadece APC kullanmanın bir zararı yoktur.
Dağıtılmış bir kurulum ise - o zaman hızlı arka uç olarak Memcache'i kullanmanız gerekir (böylece tüm makineler ortak mağazaya erişebilir).
Daha fazla ilgili ise, hosting sağlayıcınız size doğru kullanım için ayarlayamazsa, kesinlikle yanlış ev sahibi ile olmasıdır.
Atıflar: sonassi.com , php.net , repoforge.org