2009-12-20 14 views
7

Nesneleri önbelleklemek için memcache kullanıyorum, ancak APC gibi bir opcode hızlandırıcısı eklemek istiyorum. Her ikisi de önbellek içerdiğinden, "birbirlerinin ayak parmaklarına basmak" olup olmadığından emin değilim, yani memcache’nin bir OP kod hızlandırıcı olup olmadığından emin değilim.Aynı sunucuda APC VE memcached kullanabilir miyim?

Birisi netleştirebilir mi? İkisini de kullanmak istiyorum - farklı şeyler için biraz. Kod hızlanma

cevap

4

evet aynı anda birlikte her ikisini de kullanabilirsiniz benim nesneleri ve APC önbellekleme için Memcache'ı.

+0

@SankalpSingha neden saçma? Aynı zamanda kullanılmamalıdırlar mı? APC'yi opcode önbellekleme için kullanıyorum ve php session storage'ım için memcached. Bu iyi bir fikir değil mi, neden? –

+0

@SankalpSingha Saçma cevap! Neden açıkladığına ne dersin? .... –

19

bunu her seferinde ayrıştırmak zorunda kalmamak böylece Memcache Bellekte PHP depolayan APC veya XCache gibi bir şey vs dağıtılmış nesne önbelleği, çizgisinde daha fazladır. Ana amaçları farklıdır.

Eğer insanlar genellikle istenen bir çok işlemci yoğun veritabanı sorgusu olsaydı Örneğin, siz memcache sonuçlanan nesne önbelleğe olabilir ve daha sonra kendisine yerine her zaman sorgulamak yeniden koşu bakın.

APC & XCache benzer nesne önbelleğe alma özelliği var, ancak ana makinede ile sınırlıdır. Her bir sunucu için sorguyu yeniden yapmak zorunda kalmadan, 10 farklı sunucunun tek bir nesneye erişmesini isteseydiniz ne olurdu? Onları sadece memcache sunucunuza yönlendirirsiniz ve gidersiniz. Yalnızca tek bir sunucunuz varsa hala bir avantaj elde edersiniz, çünkü memcache kullanmak daha fazla kutuya ayrılmanız gerekirse gelecekte ölçeklendirmenize yardımcı olacaktır. Eğer uygulama ölçekli ihtiyacımız olacak düşünüyorsam

dikkate ana şeydir. Memcache, erişim için bir TCP bağlantısı kullanmanız gerektiğinden, yalnızca APC/Xcache paylaşılan nesneler için bir işlev çağrısına sahip olduğundan daha fazla yüke sahiptir.

Ancak Memcache aşağıdaki faydaları vardır: disk veya yeniden çalıştırmayı sorgu daha

  • hızlı.
  • Birden çok sunucuya ölçeklendirir.
  • Birçok farklı dil ile çalışır, nesneleriniz yalnızca PHP + APC/Xcache'de kilitlenmez.
  • Tüm işlemler/diller aynı nesnelere erişebilir, bu yüzden PHP çocuk süreçleriniz boş bir nesne önbelleğine sahip olsun veya olmasın endişelenmenize gerek yoktur. Yine de PHP-FPM çalıştırıyorsanız, bu büyük bir anlaşma olmayabilir.

Çoğu durumda, bunun & gelecek için daha esnektir pek zor olarak memcache içinde nesneleri önbelleğe öneriyoruz. Bu önbelleğe alma nesneler ile ilgili olarak sadece olduğunu

unutmayın. Memcache değil herhangi bir bytecode veya PHP hızlandırma özellikleri var, bu yüzden ben yan yana çalışacak APC veya Xcache

+0

"Eğer tek bir sunucunuz varsa hala bir fayda elde edersiniz, çünkü memcache kullanmak daha fazla kutuya dalmanız gerekiyorsa gelecekte ölçeklendirmenize yardımcı olacaktır." - yani tek bir sunucuda faydası yok mu? – nickf

+0

@nickf, cevabımla ilgili daha fazla ayrıntı ekledi. – Klinky

+2

+1. Eklemek için bir başka nokta: APC, yüksek eşzamanlılık yanı sıra memcached yapar.Uygun uygulama verilerini saklamak için üretimde hem memcüre hem de APC kullanıyoruz ve Redis'i kullanmaya devam etmeyi düşünüyoruz (ısrar ve liste işlemleri için). Yüksek düzeyde eşzamanlılık seviyesinde, her biri diğerlerinin iyi olmadığı bazı şeylerde iyidir. –

İlgili konular