2010-09-11 23 views
21

İşyerinde, kısa bir süre önce "büyük ölçekli" bir uygulama tasarlamaya başladık (milyonlarca kişiye hizmet verme potansiyeli için mühendislik yapıyoruz) bir gün vurur). Üst düzey devlerden biri ve sysadmin sunucuda memcache kurdu.Memcache, APC, XCache ve diğer alternatifler arasındaki fark duymadım

Anladığım kadarıyla, Memcache sorgu sonuçlarını ve bazı tabloları X miktarında bellekte tutacak ve her şeyi hunky dory tutacak.

Görünüşe göre memcache'nin bir dezavantajı, benim hayatımın yerel dev ortamına kurmayı başaramamasıdır. Kendiniz için nasıl derleneceğine dair birkaç farklı talimatı takip ettim. Çoğu adımların hepsi düzgün çalışır ancak bu PHPLoad hatayı almak gibi eğer: Eğer Snow Leopard üzerinde MAMP 1.9 için memcache derlemek mümkün oldum eğer, incedentally

[11-Sep-2010 16:02:30] PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0 

Değil birincil bir soru ama, lütfen hile bilmeme izin ver.

Benim birincil soru farklılıklar çeşitli web önbellekleme teknolojilerinin arasındadır ilgili. Memcache, APC ve Xcache'den bahsetmiştim (burada: Cache results of a mysql query manually to a txt file) ama her birinin artılarını, eksilerini ve farklılıklarını bilmiyorum.

Memcache, aklımda, projenin lider devresi ve sistem yöneticimizin seçtiği avantaj olma avantajına sahiptir. Bir Mac üzerinde çalışmak ve kurmak için dezavantaj mutlak foobar sahiptir. : - ^)

Diğer önbellek teknolojilerinin her birinin (hatta bir diğerinin) artılarını ve eksilerini sayabilen herhangi bir kişiden haber almak isteyen herkes. En çok nerede kullanılırlar, en iyi nasıl kullanılırlar. Ve bunun gibi.

Sanırım tüm yararlı bilgiler.

Bilgimi genişletmek için zaman ayırdığınız için çok teşekkürler. - Alex.

cevap

31

İlk olarak, opcode cachers for php'un bir listesi.

İkinci Memcache/MemcacheD bir Opcode Cacher değil. Dağıtılmış bellek önbellekleme sistemidir. PHP kodunuzun hızını/performansını iyileştirmez. Sadece veri depolamak için kullanılabilir.

APC, EAccelerator, XCache ve diğerleri dağıtılmaz, yani verileri yalnızca yerel web sunucusunda depolayabilirsiniz. Ancak bunların hepsi opcode önbellekleridir ve PHP uygulamanızın performansını artırabilir. Çoğu, EAccelerator (mevcut versiyonda) hariç, verileri depolayabilir.

Genellikle opcode cacher için APC'yi seçerim (Bildirildiğine göre, PHP 6'nın çekirdeğine dahil edilecektir). Ancak, sitem için birden fazla web sunucum varsa, MemcacheD'yi de kullanacağım.


Düzenleme 1 Ben MAMP kurulum APC, Memcache için çok rahatsız edicidir katılıyorum. Bununla birlikte, bununla uğraşan öğreticiler var. Ayrıca uygulamanız için en iyi Opcode Cacher açısından


Düzenleme 2 gerçekten kullandığınız hangi sunucu bağlıdır. Bazıları bazı sistemlerde daha iyi çalışır.Ayrıca, önbelleklerin nasıl performans gösterdiği konusunda uygulamanızın boyutuna ve boyutuna da bağlıdır. Birkaç farklı cachers performansını karşılaştırma hakkında


Düzenleme 3 Çok ilginç article here. (Bu makalenin 2006'da yazıldığı anlaşılmıştır ve şu anki referans için kullanılmamalıdır)

+0

Çok teşekkürler! Bu gerçekten benim için sırayla yardımcı olur :) –

1

APC bir opcode önbellekidir. PHP dosyalarının her ayrıştırılmasının gerekmediği şekilde ayrıştırılmış PHP kodunu depolar.

Memcache bir veri önbellektir. Verileri anahtar değer çifti olarak kaydeder.