Magento oturum depolaması: Redis ve Memcached


10

Önbelleğe almak için Redis ( Cm_Cache uzantısı, Redis v 2.2.12 ) olan bir Magento EE 1.12.2 (eşit olarak CE 1.7.2'de) çalıştırıyorum , ancak oturum depolama için Memcache kullanıyoruz.

Redis, bu Magento sürümlerinde kutunun dışında desteklenmez. Yani buradaki endişem:

  • Çabuk iyileşme ve hız iyileştirme açısından oturum depolamasını Redis'e almak zor mu?
  • Memcache kadar iyi ya da daha iyi değil mi?

Bu projede, oturumda üçüncü taraf XML dosyalarını depolamamız gerektiğinden büyük oturum dosyalarımız var, bu nedenle oturum okuma ve yazma işlemlerini optimize etmek önemli bir etkiye sahip olabilir.

Gönderen local.xml:

<session_save><![CDATA[memcache]]></session_save>

Ve:

<cache>
    <backend>Cm_Cache_Backend_Redis</backend>
    [...]
</cache>

Yanıtlar:


11

Benim düşünceme göre Redis en iyisi:

Memcached , Ücretsiz ve açık kaynak, bellek içi anahtar / değer deposu, yüksek performanslı, dağıtılmış bellek nesnesi önbellekleme sistemidir.

Redis , açık kaynaklı, ağa bağlı, bellek içi, isteğe bağlı dayanıklılığa sahip bir anahtar / değer veri deposudur.

Yüzünden

  1. Memcached, geçici bir bellek içi anahtar / değer deposudur. Redis biri gibi davranabilir (ve Memcached'ın yanı sıra bu işi yapabilir)
  2. Mimarisi, daha hızlı veri kaydetmek için uygundur.
  3. Veri daha hızlı alınıyor
  4. Varsayılan olarak diske kalıcılık
  5. 512 MB'a kadar olan değerler (Anahtar başına 1 MB ile sınırlı Memcached)
  6. Yerleşik kümeleme

Redis, LRU veya aşırı yüklenmeyi ele almak için benzer bir politikayı desteklemez Redis, önbellek tutarlılığını korumak için yararlı olan CAS'ı (kontrol ve ayarlama) desteklemez - bkz. Memcached önbellek tutarsızlığının en yaygın kaynakları nelerdir? (buna gerek olmayan bir SETNX işlemi olmasına rağmen)

resim açıklamasını buraya girin

Daha fazla detay: Stackoverflow "Memcached vs. Redis?"

Redis daha hızlı veri desteğiyle bazı ayrıntılar: Redis.io


Tamam, güzel bir karşılaştırma ve bağlantı ikisi arasındaki farklar hakkında çok fazla bilgi sağlar. Ama Memcache'i Redis olarak değiştirmek için zaten denemeye değer mi?
7ochem

evet. sadece redis kullanacağınız zaman woth ... Magento EE 1.12.2.be üzerinde redis kullanıyorsunuz
Amit Bera

7ochem, bana oy verdin mi?
Amit Bera

3
Büyük katkı. aynı soruyu soruyordu. şimdi redis kullanıyor. 1 mağazada mükemmel çalışıyor, ancak başka bir mağazada biraz daha az etkili. memchache de denemek emin olun. @AmitBera, memcache + apc veya redis + apc yığınlarını ve local.xml dosyasının nasıl görüneceğini yığınlayabilir.
Kay Int Veen

3
"Redis, LRU veya aşırı yüklenmeyi ele almak için benzer bir politikayı desteklemiyor" - farklı bir şey ifade etmedikçe, buna çarpmak isteyebilirsiniz . Ayrıca, OP önbellek yerine oturumları Redis'e taşımak istediğinden, oturum tahliyesi ideal olarak zamana dayalı değil zamana dayalıdır, bu nedenle LRU bir bonus değildir.
Melvyn

6

1.7.2'deki CM Redis Cache bir hack değil, Magento kodu varsayılan olarak 1.8+'ye ekledi çünkü çok iyi çalışıyor ve kolayca uygulanabiliyor.

Redis, veritabanları nedeniyle aynı sunucu örneğinde önbellek ve oturum desteğine sahiptir. Memcached'de muhtemelen birden fazla memcached örneği başlatırsınız.

Memcached ayrıca diske yazma olanağına sahiptir, bu hizmetin yeniden başlatılmasından sonra oturumları kaydetmek için kullanılabilir. Diske yazarken, memcached sitenizde hatalar verebilir çünkü birkaç dakika kilitlenir. Redis, daha önce gösterilen bu Yığındaki diğer bazı sorular gibi bunu daha iyi ele alacaktır.

Bu yüzden Redc memcached üzerinden tavsiye ederim.


5

Bu maalesef siyah beyaz bir cevap değil. Size profesyonelleri ve eksileri vereceğim:

memcache:

  • sabit kodlanmış veri sınırı (bu sorunu atmayın, yönetici oturumları kolayca ötesine geçebilir)
  • diske kaydederken durur
  • biraz daha kötü performans
  • Magento uzantısının bot savunması yok

Redis:

  • Oturumda kilitleme sorunları: oturuma aynı anda erişim nedeniyle bazı mağazalarda okuyun.
  • Bir örnekte, ancak bazı uyarılarla birden çok veritabanı desteği.
  • Magento eklentisinin botlara karşı savunma desteği vardır ve geçiş komut dosyalarıyla birlikte gelir
  • Magento eklentisinin hızlı sıkıştırma algoritması desteği var
  • Daha aktif olarak korunan kod tabanı

Şimdi, hız tek endişenizse, bir yük testi yapın. Blazemeter'de ücretsiz bir hesap size çalışmak için 50 sanal kullanıcı sağlar, bu da farklılıkları ölçmek için yeterli olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.