İhtiyacınız olan şeye bağlı olarak, genel olarak şunu düşünüyorum:
- Performansları çok fazla önemsememelisiniz. Redis, çekirdek başına küçük değerlerle daha hızlıdır, ancak memcached, istemciden yardım almadan tek bir yürütülebilir dosya ve TCP bağlantı noktasıyla birden çok çekirdeği kullanabilir. Ayrıca memkached, 100k düzeninde büyük değerlerle daha hızlıdır. Redis son zamanlarda büyük değerler (kararsız dal) hakkında çok şey geliştirdi, ancak yine de memcached bu kullanım durumunda daha hızlı. Buradaki nokta şudur: Ya da biri ya da diğeri, verebilecekleri saniye başına sorgulama için darboğazınız olmayacaktır.
- Bellek kullanımını önemsemelisiniz. Basit anahtar / değer çiftleri için memcached daha fazla bellek verimlidir. Redis karmalarını kullanırsanız, Redis bellekte daha verimlidir. Kullanım durumuna bağlıdır.
- Kalıcılık ve çoğaltmayı önemsemelisiniz, sadece Redis'te bulunan iki özellik. Amacınız bir önbellek oluşturmak olsa bile, bir yükseltme veya yeniden başlatmadan sonra verilerinizin hala orada olmasına yardımcı olur.
- İhtiyacınız olan işlemleri önemsemelisiniz. Redis'te çok fazla karmaşık işlem var, sadece önbellek kullanım durumunu göz önünde bulundurarak bile, genellikle istemci tarafında işlenmesine gerek kalmadan tek bir işlemde çok daha fazlasını yapabilirsiniz (bazen çok fazla G / Ç gereklidir). Bu işlemler genellikle düz GET ve SET kadar hızlıdır. Yani sadece GET / SET'e değil, daha karmaşık şeylere ihtiyacınız varsa Redis çok yardımcı olabilir (zaman çizelgesi önbelleklemeyi düşünün).
Bir kullanım durumu olmadan şu anda doğru seçim yapmak zordur, ancak bir çok şey için Redis'in mantıklı olduğunu düşünüyorum, çünkü bir DB olarak kullanmak istemediğinizde bile, çok daha yetenekli olmak, daha fazla sorunu çözebilirsiniz, sadece önbellekleme değil, aynı zamanda mesajlaşma, sıralama vb.
Ps tabii ki önyargılı olabilirim çünkü Redis projesinin baş geliştiricisiyim.