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