वास्तव में उपयोग के मामले पर निर्भर करता है
यदि आपके पास ये आवश्यकताएं हैं, तो Memcached चुनें:
- आप सबसे सरल संभव मॉडल चाहते हैं।
- आपको कई कोर या थ्रेड के साथ बड़े नोड चलाने की आवश्यकता है।
- आपको स्केल आउट/इन करने की क्षमता चाहिए,
- आपके सिस्टम की मांग बढ़ने और घटने पर नोड्स जोड़ना और हटाना।
- आप अपने डेटा को कई हिस्सों में विभाजित करना चाहते हैं।
- आपको डेटाबेस जैसी वस्तुओं को कैश करने की आवश्यकता है।
यदि आपके पास ये आवश्यकताएं हैं, तो Redis चुनें:
- आपको जटिल डेटा प्रकारों की आवश्यकता है, जैसे स्ट्रिंग्स, हैश, सूचियां, और सेट।
- आपको इन-मेमोरी डेटा-सेट को सॉर्ट या रैंक करने की आवश्यकता है।
- आप अपने मुख्य स्टोर की दृढ़ता चाहते हैं।
- पठन गहन अनुप्रयोगों के लिए आप अपने डेटा को प्राथमिक से एक या अधिक पठन प्रतिकृतियों में दोहराना चाहते हैं।
- यदि आपका प्राथमिक नोड विफल हो जाता है, तो आपको स्वचालित विफलता की आवश्यकता होगी।
- आप क्लाइंट को सर्वर पर होने वाली घटनाओं के बारे में सूचित करने के लिए (पब/उप) क्षमताओं को प्रकाशित और सब्सक्राइब करना चाहते हैं।
- आप बैकअप चाहते हैं और क्षमताओं को बहाल करना चाहते हैं।
यहाँ aws द्वारा दिलचस्प लेख है https://d0.awsstatic.com/whitepapers/performance-at-scale-with-amazon-elasticache.pdf