Redis RE . के लिए खड़ा है मोटे DI कार्रवाई एस erver, साल्वाटोर सैनफिलिपो द्वारा 2009 में बनाया गया था। दूसरी ओर, मेम्केड को 2003 में ब्रैड फिट्ज़पैट्रिक द्वारा बनाया गया था। Redis और Memcached दोनों हैं:
- नोएसक्यूएल इन-मेमोरी डेटा स्ट्रक्चर
- सी में लिखा
- ओपन सोर्स
- एप्लिकेशन को गति देने के लिए उपयोग किया जाता है
- उप-मिलीसेकंड विलंबता का समर्थन करें
2014 में, साल्वाटोर ने एक उत्कृष्ट StackOverflow पोस्ट लिखी, जब रेडिस की तुलना में Memcached का उपयोग करना अधिक समझ में आता है। इस पोस्ट में, हम Redis और Memcached के बीच एक वर्तमान और विस्तृत तुलना प्रदान करते हैं ताकि आप अपने आवेदन में उनके उपयोग के बारे में एक सूचित विकल्प बना सकें।
इन्फोग्राफिक
इस पोस्ट को नीचे दिए गए इन्फोग्राफिक में संघनित किया गया है। इस इन्फोग्राफिक के साथ आप आसानी से इस तुलना के परिणामों की कल्पना कर सकते हैं कि विभिन्न परिदृश्यों में कौन शीर्ष पर आता है। यदि आप पाठ प्रारूप में तुलना पढ़ना चाहते हैं, तो यहां क्लिक करें।
दस्तावेज़ीकरण
शुरू करने के लिए, Redis Memcached की तुलना में अधिक व्यापक रूप से प्रलेखित है। इससे सीखना, व्यवस्थापन और उपयोग करना आसान हो जाता है।
डेटाबेस मॉडल
Redis मुख्य रूप से एक प्रमुख मूल्य भंडार है। जबकि कुंजियाँ बाइनरी स्ट्रिंग्स हैं, रेडिस के साथ लाभ यह है कि मान केवल बाइनरी स्ट्रिंग्स तक सीमित नहीं है। वे विभिन्न प्रकार की डेटा संरचनाएं हो सकती हैं जो जटिल वस्तुओं के भंडारण को सक्षम करती हैं और उन पर संचालन का एक समृद्ध सेट प्रदान करती हैं। रेडिस रेडिस मॉड्यूल के माध्यम से एक्स्टेंसिबिलिटी भी प्रदान करता है। रेडिस मॉड्यूल एक्सटेंशन हैं जो अतिरिक्त डेटा संरचनाओं और सुविधाओं के लिए प्रदान करते हैं जो कोर फीचर सेट के भीतर उपलब्ध नहीं हैं। यहां कुछ सुविधाओं का एक नमूना दिया गया है जो अब मॉड्यूल के रूप में उपलब्ध हैं:
- दस्तावेज़ स्टोर
- ग्राफ़ डीबीएमएस
- खोज इंजन
- समय श्रृंखला डीबीएमएस
Memcached एक प्लेन की वैल्यू स्टोर है जो वैल्यू के रूप में केवल बाइनरी स्ट्रिंग्स को सपोर्ट करता है।
डेटा संरचनाएं
जैसा कि ऊपर उल्लेख किया गया है, Redis कई डेटा संरचना प्रकार प्रदान करता है जो इसे उपयोग करने के लिए बेहद लचीला होने की अनुमति देता है, जिसमें स्ट्रिंग्स, हैश, सूचियाँ, सेट, सॉर्ट किए गए सेट, बिटमैप्स, बिटफील्ड्स, हाइपरलॉगलॉग शामिल हैं। भू-स्थानिक सूचकांक, और धाराएँ। आप इनके बारे में इस टॉप रेडिस यूज केस बाय कोर डेटा स्ट्रक्चर टाइप्स लेख में अधिक जान सकते हैं।
छवि स्रोत:https://redislabs.com/redis-enterprise/data-structs/
Memcached केवल प्लेन बाइनरी स्ट्रिंग्स का समर्थन करता है जो केवल-पढ़ने के लिए डेटा के लिए बढ़िया हैं, इसलिए यदि आपको Redis की सभी घंटियों और सीटी की आवश्यकता नहीं है, तो Memcached आपके लिए एक सरल डेटाबेस है। उपयोग करने के लिए।
डेटाबेस रैंक और लोकप्रियता
डेटाबेस की अधिक लोकप्रियता के परिणामस्वरूप उपयोगकर्ताओं का एक बड़ा समुदाय, अधिक चर्चा और उपयोगकर्ता-जनित ट्यूटोरियल, और तृतीय-पक्ष टूल जैसे DBaaS प्लेटफॉर्म और के माध्यम से अधिक सहायता और समर्थन प्राप्त होता है। आपके परिनियोजन को अनुकूलित करने में सहायता के लिए विश्लेषण उपकरण।
डीबी-इंजन के अनुसार, फरवरी 2021 तक Redis दुनिया का 8वां सबसे लोकप्रिय डेटाबेस है, क्योंकि इसकी सादगी, समृद्ध डेटा संरचना और बेहतरीन दस्तावेज़ीकरण है। Memcached को वर्तमान में 28 वें सबसे लोकप्रिय डेटाबेस के रूप में स्थान दिया गया है। जब कुंजी-मूल्य डेटाबेस मॉडल के संबंध में Redis और Memcached को रैंक किया जाता है, तो Redis पहले स्थान पर और Memcached चौथे स्थान पर आता है। हालाँकि, यदि आप केवल एक ओपन-सोर्स की-वैल्यू डेटाबेस की तलाश कर रहे हैं, या एक जिसे ऑन-प्रिमाइसेस पर तैनात किया जा सकता है, तो Memcached दूसरे स्थान पर आता है क्योंकि Amazon DynamoDB और Microsoft Azure Cosmos DB दोनों ही वाणिज्यिक डेटाबेस हैं जिन्हें केवल में ही तैनात किया जा सकता है। बादल।
वास्तुकला
Redis और Memcached दोनों क्लाइंट-सर्वर का अनुसरण करते हैं वास्तुकला। क्लाइंट सर्वर में डेटा को की-वैल्यू के रूप में पॉप्युलेट करते हैं।
Redis सिंगल थ्रेडेड है जहां दूसरी ओर Memcached में एक मल्टीथ्रेडेड आर्किटेक्चर है। Memcached अधिक कोर वाले सिस्टम पर बेहतर स्केल करता है जो गणना क्षमता को स्केल किए जाने पर अधिक संचालन को संभाल सकता है। हालांकि, अतिरिक्त कोर का उपयोग करने के लिए एक ही सिस्टम पर एक से अधिक रेडिस इंस्टेंस शुरू किए जा सकते हैं।
उपयोग में आसानी
जैसा कि ऊपर डेटाबेस मॉडल अनुभाग में बताया गया है, Redis, एक बहु-मॉडल डेटाबेस होने के कारण, किसी भी प्रकार के डेटा मॉडल के साथ उपयोग किया जा सकता है। रेडिस में, कोड लिखना आसान है क्योंकि यह जटिल कार्यों को सरल करता है। रेडिस में उन्नत डेटा संरचनाएं हैं और यह सरल स्ट्रिंग मानों तक सीमित नहीं है। उदाहरण के लिए, यदि आपका एप्लिकेशन डेटा को सेट में संग्रहीत करता है और आप सूची में सेट का ट्रैक रखना चाहते हैं, तो आप इसे Redis में आसानी से कर सकते हैं। Memcached पर एक समान कार्य संभव नहीं है। लेकिन वही कार्य करने के अन्य तरीके भी हैं जिनके लिए कोड की अधिक पंक्तियों की आवश्यकता होगी।
दूसरी ओर, Memcached, केवल सादे स्ट्रिंग मानों को संग्रहीत करता है। इसलिए, एप्लिकेशन को डेटा संरचना जटिलता से निपटने के लिए छोड़ दिया गया है।
डेटा विभाजन
Redis कई नोड इंस्टेंस में डेटा के विभाजन का समर्थन करता है। रेडिस के वर्तमान उपयोगकर्ता डेटा विभाजन के लिए रेंज विभाजन, हैश विभाजन और सुसंगत हैशिंग जैसी विभिन्न तकनीकों का लाभ उठाते हैं। रेडिस में, डेटा विभाजन को तीन अलग-अलग तरीकों से लागू किया जा सकता है:
- क्लाइंट-साइड विभाजन
- प्रॉक्सी-समर्थित विभाजन (उदाहरण:tweproxy)
- क्लस्टर नोड्स के भीतर क्वेरी रूटिंग के साथ सर्वर-साइड विभाजन
Memcached कई नोड्स में डेटा विभाजन का भी समर्थन करता है, और ट्रैफ़िक लोड समान रूप से वितरित सुनिश्चित करने के लिए लगातार हैशिंग एक अनुशंसित तरीका है।
Redis vs Memcached - 2021 तुलना ट्वीट करने के लिए क्लिक करेंसमर्थित भाषाएं
Redis उच्च-स्तरीय से लेकर निम्न-स्तरीय भाषाओं तक लगभग सभी सबसे अधिक उपयोग की जाने वाली प्रोग्रामिंग भाषाओं का समर्थन करता है। मेम्केड हालांकि रेडिस की तुलना में कम भाषाओं का समर्थन करता है, लेकिन सभी लोकप्रिय भाषाओं का समर्थन करता है।
मेमकैश्ड
- .नेट
- सी
- सी++
- कोल्डफ्यूजन
- एरलैंग
- जावा
- लिस्प
- लुआ
- ओकैमल
- पर्ल
- PHP
- पायथन
- रूबी
रेडिस
- सी
- सी#
- सी++
- क्लोजर
- क्रिस्टल
- डी
- डार्ट
- अमृत
- एरलैंग
- फैंसी
- जाओ
- हास्केल
- हैक्स
- जावा
- जावास्क्रिप्ट (नोड.जेएस)
- लिस्प
- लुआ
- मैटलैब
- उद्देश्य-सी
- ओकैमल
- पास्कल
- पर्ल
- PHP
- प्रोलॉग
- शुद्ध डेटा
- पायथन
- आर
- रिबोल
- रूबी
- जंग
- स्काला
- योजना
- छोटी बात
- स्विफ्ट
- टीसीएल
- विजुअल बेसिक
लेन-देन
Redis "लेन-देन" नीचे दी गई तीन गारंटी के साथ निष्पादित किए जाते हैं:
- लेन-देन क्रमबद्ध और क्रमिक रूप से निष्पादित होते हैं
- या तो सभी आदेश, या कोई नहीं, संसाधित किए जाते हैं (परमाणु लेनदेन)
- आशावादी लॉकिंग चेक-एंड-सेट का उपयोग करके एक अतिरिक्त गारंटी प्रदान करता है
Redis सुनिश्चित करता है कि एक क्लाइंट मशीन से सभी एक ही कमांड को एक साथ निष्पादित किया जाए। लेन-देन में सभी आदेशों को निष्पादित किया जाता है जब परमाणुता सुनिश्चित करने के लिए "EXEC" कमांड को कॉल किया जाता है।
दूसरी ओर, Memcached, लेन-देन प्रबंधन प्रदान नहीं करता है।
प्रतिकृति
Redis एक साधारण लीडर-फॉलोअर (मास्टर-स्लेव) प्रतिकृति प्रदान करता है जो इन विशेषताओं के साथ मास्टर इंस्टेंस की सटीक प्रतियां बनाता है:
- मास्टर दास को डेटा कमांड तब तक भेजता रहता है जब तक वे जुड़े रहते हैं।
- यदि कनेक्शन टूट जाता है, तो दास आंशिक पुन:सिंक्रनाइज़ेशन का पालन करेगा, केवल उस डेटा की प्रतिलिपि बना सकता है जो डिस्कनेक्शन के दौरान छूट गया था।
- यदि आंशिक पुन:सिंक्रनाइज़ेशन संभव नहीं है, तो यह पूर्ण पुन:सिंक्रनाइज़ेशन का प्रयास करेगा।
आप उन्नत विफलता सुरक्षा के लिए उच्च उपलब्धता सुविधाओं, रेडिस सेंटिनल्स या रेडिस क्लस्टर का भी लाभ उठा सकते हैं।
Native Memcached प्रतिकृति का समर्थन नहीं करता है, लेकिन आप अपने परिनियोजन के लिए उच्च उपलब्धता प्राप्त करने के लिए एक मुक्त ओपन सोर्स पैच, रेपकैच्ड का उपयोग कर सकते हैं। यह मल्टी मास्टर प्रतिकृति, अतुल्यकालिक डेटा प्रतिकृति प्रदान करता है, और सभी मेम्केड कमांड का समर्थन करता है।
स्नैपशॉट/दृढ़ता
स्नैपशॉट आपके डेटाबेस का केवल-पढ़ने के लिए दृश्य हैं क्योंकि यह एक निश्चित समय पर था। Redis स्नैपशॉट का समर्थन करता है, और डिफ़ॉल्ट रूप से, Redis डिस्क पर डेटासेट के स्नैपशॉट को डंप.rdb नामक बाइनरी फ़ाइल में सहेजता है। आप मैन्युअल रूप से एक स्नैपशॉट कॉल कर सकते हैं, या ऑपरेशन चलाने के लिए आवृत्ति या परिवर्तन सीमा को अनुकूलित कर सकते हैं।
यहाँ दो दृढ़ता विकल्प हैं जो Redis समर्थन करता है:
- आरडीबी दृढ़ता
- एओएफ दृढ़ता
RDB का अर्थ "Redis डेटाबेस बैकअप" है। यह एक विशिष्ट समय पर डेटाबेस का एक कॉम्पैक्ट, पॉइंट-इन-टाइम स्नैपशॉट है। यह कम जगह लेता है, रेडिस के प्रदर्शन को अधिकतम करता है, और आपदा वसूली के लिए अच्छा है।
AOF का अर्थ है "केवल फ़ाइल संलग्न करें"। एओएफ निष्पादित सभी आदेशों का ट्रैक रखता है, और एक विनाशकारी स्थिति में, यह डेटा वापस पाने के लिए आदेशों को फिर से निष्पादित करता है। यह विधि अधिक स्थान लेती है क्योंकि सभी आदेशों को फिर से निष्पादित किया जाता है, और यह स्नैपशॉट का एक बहुत ही टिकाऊ तरीका नहीं है।
दूसरी ओर Memcached डिस्क दृढ़ता पर समर्थन नहीं करता है।
सर्वर-साइड स्क्रिप्ट
Lua आपके Redis सर्वर के लिए एम्बेडेड स्क्रिप्टिंग भाषा है, जो संस्करण 2.6 के रूप में उपलब्ध है, जो आपको अपने कोड को सरल बनाने और प्रदर्शन बढ़ाने के लिए Redis के अंदर संचालन करने देती है। लुआ दुभाषिया का उपयोग करके लिपियों का मूल्यांकन करने के लिए उपयोग किए जाने वाले दो मुख्य कार्य हैं:
- EVAL
- इवाल्शा
जब लुआ स्क्रिप्ट निष्पादित की जा रही हो तो अन्य सभी अनुरोध अवरुद्ध हो जाते हैं जैसा कि नीचे दिए गए चित्र में दिखाया गया है।
Redis में संस्करण 3.2 में Lua स्क्रिप्ट डीबगर भी शामिल है जो जटिल स्क्रिप्ट को लिखना आसान बनाता है और प्रदर्शन को बढ़ाने में मदद करता है।
Memcached किसी भी सर्वर-साइड स्क्रिप्टिंग का समर्थन नहीं करता है।
मापनीयता
आपके Redis डेटाबेस को क्षैतिज रूप से मापने की दो तकनीकें हैं:
- रेडिस क्लस्टर में शार्क जोड़ना
- Redis HA (मास्टर/प्रतिकृति) सेटअप में नोड्स जोड़ना
जब आपको अधिक मेमोरी या कंप्यूट की आवश्यकता होती है, तो आप अपने Redis सेटअप को लंबवत रूप से स्केल भी कर सकते हैं। यह बिना डाउनटाइम के किया जा सकता है यदि आपके पास HA सेटअप है या आप Redis क्लस्टर तकनीक का उपयोग करते हैं।
Memcached सर्वर नोड्स (शार्डिंग) में डेटा वितरित करने के लिए एक तंत्र प्रदान नहीं करता है। तो, मेम्केड में, क्षैतिज मापनीयता अधिक नोड्स जोड़ने के समान सरल है - आपके डेटा को अलग-अलग शार्क में विभाजित करने की समस्या को एप्लिकेशन/क्लाइंट स्तर पर करना होगा। कुछ ओपन सोर्स टूल हैं जो इसमें आपकी मदद कर सकते हैं।
संचार प्रोटोकॉल
Redis TCP का उपयोग नेटवर्क प्रोटोकॉल के रूप में करता है और UDP का समर्थन नहीं करता है।
Memcached TCP और UDP संचार प्रोटोकॉल दोनों का समर्थन करता है। मेम्केड सर्वर को डेटा दो रूपों में भेजा जाता है:
- पाठ्य पंक्तियाँ:आदेश भेजें और सर्वर से प्रतिक्रियाएँ प्राप्त करें।
- असंरचित डेटा:किसी दी गई कुंजी के लिए मूल्य जानकारी प्राप्त करें या भेजें, और डेटा उसी प्रारूप में लौटाया जाता है जो प्रदान किया गया है।
समर्थित कैश निष्कासन नीतियां
Redis विभिन्न प्रकार की निष्कासन नीतियों का समर्थन करता है। आइए कुछ पर एक नज़र डालते हैं।
- निष्कासन: "नोइविक्शन" में एक त्रुटि वापस आ जाती है जब मेमोरी बाउंड तक पहुंच जाती है।
- allkeys-lru: Lru का अर्थ है "कम से कम हाल ही में उपयोग किया गया"। यह नीति कम से कम हाल ही में उपयोग किए गए डेटा को हटा देती है।
- allkeys-lfu: Lfu का अर्थ है "कम से कम अक्सर इस्तेमाल किया जाने वाला"। यह नीति सबसे कम बार उपयोग किए जाने वाले डेटा को हटा देती है।
- ऑलकी-रैंडम: यह नीति डेटा को बेतरतीब ढंग से हटा देती है।
- अस्थिर-lru: वाष्पशील डेटा समाप्ति डेटा सेट के साथ होता है। यह नीति हाल ही में उपयोग किए गए कम से कम अस्थिर डेटा को हटा देती है।
- अस्थिर-lfu: वाष्पशील डेटा समाप्ति डेटा सेट के साथ होता है। यह नीति कम से कम उपयोग किए जाने वाले अस्थिर डेटा को हटा देती है।
- अस्थिर-यादृच्छिक: यह नीति अस्थिर डेटा को बेतरतीब ढंग से हटा देती है।
- अस्थिर-ttl: "टीटीएल" जीने का समय है। यह नीति उस डेटा को हटा देती है जिसके पास जीने के लिए सबसे कम समय होता है।
Memcached स्थान की आवश्यकता होने पर डेटा को बेदखल करने के लिए LRU एल्गोरिथम का उपयोग करता है। यह पहले से समाप्त हो चुके डेटा को हटाने के लिए खोजता है यदि समाप्त हो चुका डेटा उपलब्ध नहीं है तो LRU एल्गोरिथम का उपयोग किया जाता है।
संदेश प्रकाशित करें और सदस्यता लें
Redis पब/सब मैसेजिंग (प्रकाशित और सदस्यता) का समर्थन करता है। इस उद्देश्य के लिए तीन कमांड का उपयोग किया जाता है।
क्लाइंट उपयोग करता है:
- सदस्य बनें
- सदस्यता छोड़ें
सब्सक्राइब और अनसब्सक्राइब का इस्तेमाल किसी खास चैनल से मैसेज पाने के लिए किया जाता है।
सर्वर उपयोग करता है:
- प्रकाशित करें
“प्रकाशित” का उपयोग क्लाइंट को डेटा पुश करने के लिए किया जाता है।
Memcached संदेश प्रकाशित करने और सदस्यता लेने का समर्थन नहीं करता है।
स्ट्रीम सपोर्ट
Redis एक नई डेटा संरचना "Redis Streams" का उपयोग करके 5.0 या उच्चतर संस्करण के साथ काफ्का जैसी स्ट्रीम का समर्थन करता है। Redis Streams में Apache Kafka जैसे उपभोक्ता समूहों की अवधारणा है, जो क्लाइंट अनुप्रयोगों को एक वितरित फैशन में संदेशों का उपभोग करने देता है, जिससे इसे स्केल करना और अत्यधिक उपलब्ध सिस्टम बनाना आसान हो जाता है।
Memcached, Streams के लिए नेटिव सपोर्ट नहीं देता है, लेकिन कम लेटेंसी पर स्ट्रीम प्रोसेसिंग के लिए Kafcache जैसे ओपन सोर्स लाइब्रेरी टूल्स हैं।
भू-स्थानिक सहायता
Redis में एक डेटा संरचना होती है जिसे जियोस्पेशियल इंडेक्स कहा जाता है जो किसी स्थान के देशांतर और अक्षांश डेटा को संग्रहीत करता है। आप भू-स्थानिक डेटा पर अलग-अलग ऑपरेशन कर सकते हैं, जैसे दो बिंदुओं के बीच की दूरी की गणना करना या आस-पास के स्थान ढूंढना।
Memcached में भू-स्थानिक डेटा को संभालने के लिए कोई विशेष डेटा संरचना नहीं है।
प्रदर्शन
इन-मेमोरी की-वैल्यू डेटा स्टोर के बीच एक प्रदर्शन तुलना किसी भी व्यावहारिक महत्व की तुलना में एक बौद्धिक अभ्यास से अधिक है - जब तक कि आप इस तरह के पैमाने पर सिस्टम को तैनात नहीं कर रहे हैं कि यह दिलचस्प हो जाता है एक लागत-बचत उपाय। ऐसा इसलिए है क्योंकि ऐसे स्टोर IO बाध्य हैं और आमतौर पर नेटवर्क विलंबता डेटाबेस विलंबता की तुलना में अनुप्रयोग कथित विलंबता में एक बड़ी भूमिका निभा सकती है।
एक अधिक व्यावहारिक प्रदर्शन पहलू भंडारण दक्षता है - स्मृति की समान मात्रा में कितना डेटा पैक किया जा सकता है। यहां भी, रेडिस द्वारा उपयोग की जाने वाली आंतरिक डेटा संरचनाएं डेटा आकार के आधार पर भिन्न होती हैं। तो इन डेटाबेस के बीच प्रदर्शन पर किसी भी चर्चा को चुटकी भर नमक के साथ लिया जाना चाहिए।
आइए 2016 के एक शोध पत्र में दिखाई गई कुछ तुलनाओं पर एक नजर डालते हैं। इस पत्र में, लेखक अपने प्रदर्शन को मापने के लिए व्यापक रूप से उपयोग किए जाने वाले इन-मेमोरी डेटाबेस का प्रयोग करते हैं:
- संचालन पूरा करने में लगा समय।
- ऑपरेशन के दौरान वे कितनी कुशलता से मेमोरी का उपयोग करते हैं।
कागज में प्रयुक्त डेटाबेस संस्करण:
डेटाबेस | <वें शैली ="पृष्ठभूमि-रंग:#273039; पैडिंग:10px; रंग:#fff;" चौड़ाई="50%">संस्करण|
---|---|
रेडिस | 3.0.7 |
मेमकैच्ड | 1.4.14 |
ऑपरेशन लिखें
डेटा लिखते समय, जैसा कि आप देख सकते हैं, नीचे दी गई तालिका में मेमकैच्ड रिकॉर्ड की संख्या मिलियन तक जाने के बाद भी असाधारण गति दिखाता है।
की-वैल्यू पेयर (ms) लिखने के लिए परिकलित समय
<वें शैली ="बॉर्डर:1px ठोस #eee; पृष्ठभूमि-रंग:#273039; पैडिंग:10px; रंग:#fff;" colspan="4" width="80%">रिकॉर्ड की संख्या | ||||
---|---|---|---|---|
डेटाबेस | 1,000 | 10,000 | 100,000 | 1,000,000 |
रेडिस | 34 | 214 | 1,666 | 14,638 |
मेमकैच्ड | 23 | 100 | 276 | 2,813 |
ऑपरेशन पढ़ें
एक लाख रिकॉर्ड के लिए भी रीडिस में डेटा पढ़ना लगभग सुसंगत रहता है, लेकिन Memcached में जैसे-जैसे रिकॉर्ड्स की संख्या बढ़ती जाती है, समय भी थोड़ा बढ़ता जाता है।
किसी दिए गए कुंजी प्रति डेटाबेस (ms) के अनुरूप मान पढ़ने का बीता हुआ समय
<वें शैली ="बॉर्डर:1px ठोस #eee; पृष्ठभूमि-रंग:#273039; पैडिंग:10px; रंग:#fff;" colspan="4" width="80%">रिकॉर्ड की संख्या | ||||
---|---|---|---|---|
डेटाबेस | 1,000 | 10,000 | 100,000 | 1,000,000 |
रेडिस | 8 | 6 | 8 | 8 |
मेमकैच्ड | 9 | 14 | 14 | 30 |
स्मृति उपयोग
स्मृति उपयोग पर चर्चा करते समय, Redis हमेशा सबसे अच्छा होता है जैसा कि आप परिणामों में देख सकते हैं।
राइट ऑपरेशन (एमबी) के लिए इन-मेमोरी डेटाबेस का मेमोरी उपयोग
<वें शैली ="बॉर्डर:1px ठोस #eee; पृष्ठभूमि-रंग:#273039; पैडिंग:10px; रंग:#fff;" colspan="4" width="80%">रिकॉर्ड की संख्या | ||||
---|---|---|---|---|
डेटाबेस | 1,000 | 10,000 | 100,000 | 1,000,000 |
रेडिस | 2.5 | 3.8 | 4.3 | 62.7 |
मेमकैच्ड | 5.3 | 27.2 | 211 | 264.9 |
जैसा कि आप देख सकते हैं कि Redis Memcached से बेहतर है।
डिलीट ऑपरेशन (एमबी) के लिए इन-मेमोरी डेटाबेस का मेमोरी उपयोग
<वें शैली ="बॉर्डर:1px ठोस #eee; पृष्ठभूमि-रंग:#273039; पैडिंग:10px; रंग:#fff;" colspan="4" width="80%">रिकॉर्ड की संख्या | ||||
---|---|---|---|---|
डेटाबेस | 1,000 | 10,000 | 100,000 | 1,000,000 |
रेडिस | 0 | 0 | 0 | 0 |
मेमकैच्ड | 2.2 | 2.1 | 2.2 | 2.2 |
प्रबंधित सेवाएं/सहायता
Redis के लिए अधिक लोकप्रियता और समुदाय ने प्रबंधित सेवाओं, होस्टिंग और समर्थन की आवश्यकता को भी प्रेरित किया है। Redis™* के लिए लोकप्रिय प्रबंधित डेटाबेस प्रदाताओं में स्केलग्रिड, Redis Labs, AWS Elasticache, Azure Cache और DigitalOcean शामिल हैं। यह पृष्ठ Redis™ के लिए शीर्ष प्रदाताओं की एक बेहतरीन तुलना प्रदान करता है। Redis में व्यापक आंतरिक रिपोर्टिंग टूल भी हैं जैसे कैश हिट, मेमोरी उपयोग, ऑप्स, और यहां तक कि धीमी क्वेरी लॉग की गई।
Memcached के लिए प्रबंधित सेवाएं बहुत कम उपलब्ध हैं, लेकिन अभी भी Amazon Elasticache के माध्यम से समर्थित हैं।
ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) सपोर्ट
Redis के पास Redis 6.0 से शुरू होने वाला नेटिव TLS सपोर्ट है। रेडिस के पुराने संस्करणों ने टीएलएस समर्थन प्रदान करने के लिए स्टनल के उपयोग की सिफारिश की थी।
Memcached 1.5.13 और इससे ऊपर के संस्करण TLS के माध्यम से प्रमाणीकरण और एन्क्रिप्शन का समर्थन करते हैं। यह सुविधा अभी भी प्रायोगिक चरणों में है।
प्रमाणीकरण
Redis 5.x तक, Redis केवल एक साधारण पासवर्ड आधारित प्रमाणीकरण का समर्थन करता था। यह पासवर्ड सर्वर पर प्लेनटेक्स्ट में स्टोर किया गया था। संस्करण 6.0 में रेडिस पूरी तरह से चित्रित एसीएल का समर्थन करता है।
Memcached संस्करण 1.4.3 और उच्चतर में SASL समर्थन है। पहले Memcached में कोई प्रमाणीकरण परत नहीं थी।
सारांश
Redis और Memcached दोनों ही बेहतरीन हैं और विभिन्न क्षेत्रों में इनके अनुप्रयोग हैं। बाद में विकसित किए जा रहे रेडिस में कई उन्नत कार्यात्मकताएं हैं और इसमें महान दस्तावेज़ीकरण और समुदाय हैं।
|
*Redis, Redis Labs Ltd का एक ट्रेडमार्क है। इसमें कोई भी अधिकार Redis Labs Ltd के लिए आरक्षित है। स्केलग्रिड द्वारा कोई भी उपयोग केवल संदर्भात्मक उद्देश्यों के लिए है और किसी प्रायोजन, समर्थन का संकेत नहीं देता है। या रेडिस और स्केलग्रिड के बीच संबद्धता।