निर्भर करता है कि आपको क्या चाहिए, सामान्य तौर पर मुझे लगता है कि:
- आपको प्रदर्शन के बारे में बहुत ज्यादा परवाह नहीं करनी चाहिए। रेडिस छोटे मानों के साथ प्रति कोर तेज है, लेकिन मेम्केड क्लाइंट की मदद के बिना एक निष्पादन योग्य और टीसीपी पोर्ट के साथ कई कोर का उपयोग करने में सक्षम है। इसके अलावा 100k के क्रम में बड़े मूल्यों के साथ मेमकाटेड तेजी से है। रेडिस ने हाल ही में बड़े मूल्यों (अस्थिर शाखा) के बारे में बहुत सुधार किया है लेकिन अभी भी इस उपयोग के मामले में मेमेकैस्ट तेज है। यहाँ बिंदु यह है: और न ही एक-दूसरे को आपके द्वारा दिए गए क्वेरी-प्रति-सेकंड के लिए अड़चन होने की संभावना होगी।
- आपको मेमोरी के उपयोग की परवाह करनी चाहिए। सरल कुंजी-मूल्य जोड़े के लिए मेमेकैच्ड अधिक कुशल है। यदि आप Redis hashes का उपयोग करते हैं, तो Redis अधिक मेमोरी कुशल है। उपयोग के मामले पर निर्भर करता है।
- आपको दृढ़ता और प्रतिकृति के बारे में परवाह करनी चाहिए, दो सुविधाएँ केवल रेडिस में उपलब्ध हैं। यहां तक कि अगर आपका लक्ष्य एक कैश का निर्माण करना है, तो यह मदद करता है कि अपग्रेड या रिबूट के बाद भी आपका डेटा अभी भी है।
- आपको जिस तरह के ऑपरेशन की जरूरत है, उसकी देखभाल करनी चाहिए। रेडिस में बहुत सारे जटिल ऑपरेशन होते हैं, यहां तक कि सिर्फ कैशिंग उपयोग के मामले को देखते हुए, आप अक्सर एक ही ऑपरेशन में बहुत कुछ कर सकते हैं, बिना प्रोसेस किए क्लाइंट क्लाइंट साइड (बहुत अधिक आई / ओ कभी-कभी आवश्यक होता है) की आवश्यकता होती है। यह ऑपरेशन अक्सर सादे GET और SET की तरह तेज़ होते हैं। इसलिए यदि आपको केवल GET / SET की आवश्यकता नहीं है, लेकिन अधिक जटिल चीजें हैं तो Redis बहुत मदद कर सकता है (टाइमलाइन कैशिंग पर सोचें)।
एक उपयोग के मामले के बिना अधिकार अभी चुनना मुश्किल है, लेकिन मुझे लगता है कि बहुत सी चीजों के लिए रेडिस समझ में आता है, तब भी जब आप इसे डीबी के रूप में उपयोग नहीं करना चाहते हैं, बहुत अधिक सक्षम होने के नाते आप अधिक समस्याओं को हल कर सकते हैं, न केवल कैशिंग, बल्कि मैसेजिंग, रैंकिंग, और इसके आगे भी।
जब से मैं रेडिस परियोजना का मुख्य विकासक हूं, तब से मैं निश्चित रूप से पक्षपाती हो सकता हूं।