SQL डेटाबेस के बजाय Redis जैसे कुंजी / मान स्टोर का उपयोग कब करें?


166

मैंने कीस / वैल्यू स्टोर जैसे कि रेडिस के बारे में बहुत अच्छी बातें पढ़ी हैं, लेकिन मुझे यह पता नहीं लग सकता है कि किसी एप्लिकेशन में इसका उपयोग करने का समय कब है।

कहो कि मैं एक वेब-आधारित एप्लिकेशन का आर्किटेक्चर कर रहा हूं; मैं जानता हूं कि फ्रंट-एंड, बैक-एंड, डेटाबेस (एस), इत्यादि के लिए मैं क्या स्टैक का उपयोग करने जा रहा हूं। ये कुछ परिदृश्य हैं जहां मुझे "ओह, हमें एक्स, वाई या जेड के लिए रेडिस की भी आवश्यकता है।"

मैं नोड के उदाहरणों के साथ-साथ गैर-नोड के उदाहरणों की भी सराहना करूंगा।


जवाबों:


102

जब यह एक अनुप्रयोग में उपयोग करने का समय है तो मुझे यह पता नहीं लग सकता है।

मैं आपको इस ट्यूटोरियल को पढ़ने की सलाह दूंगा जिसमें मामलों का उपयोग करना भी शामिल है। चूंकि रेडिस बल्कि मेमोरी ओरिएंटेड है, इसलिए यह अक्सर अपडेट किए गए रियल-टाइम डेटा के लिए बहुत अच्छा होता है, जैसे कि सत्र स्टोर, राज्य डेटाबेस, सांख्यिकी, कैशिंग और इसकी उन्नत डेटा संरचनाएं कई अन्य परिदृश्यों के लिए बहुमुखी प्रतिभा प्रदान करती हैं।

Redis, हालांकि, क्लासिक रिलेशनल डेटाबेस के लिए NoSQL प्रतिस्थापन नहीं है क्योंकि यह RDBMS दुनिया की कई मानक सुविधाओं का समर्थन नहीं करता है जैसे कि आपके डेटा की क्वेरी जो इसे धीमा कर सकती है। रिप्लेसमेंट डॉक्यूमेंट डेटाबेस हैं जैसे कि MongoDB या CouchDB और redis विशिष्ट कार्यक्षमता को पूरक करने में महान है जहां उन्नत डेटा संरचनाओं के लिए गति और समर्थन काम आता है।


3
आप जिस ट्यूटोरियल से जुड़े हैं वह बहुत बढ़िया है!
क्रिस अब्राम

5
मैंने उस ट्यूटोरियल साइट URL के साथ एक त्वरित Google खोज की और एक शीर्ष हिट के रूप में इस पर आया - स्लाइडशेयर ।/dvirsky/introduction-to-redis-version-2
पॉल

66

मुझे लगता है कि इस लेख की तुलना में रेडिस के लिए उपयोग के मामलों में कुछ भी बेहतर नहीं बताया गया है: http://antirez.com/post/take- नुकसान-of-redis-adding-it-to-your-stack.html

मुझे यकीन है आप एक आहा होगा! पल । ;)

पिछले पाठक का एक उद्धरण:

मैंने पहले रेडिस के बारे में पढ़ा है और सुना है कि कंपनियां कैसे इसका उपयोग कर रही हैं, लेकिन कभी भी यह पूरी तरह से समझ में नहीं आया कि इसका उद्देश्य क्या है। इसे पढ़ने के बाद मैं वास्तव में कह सकता हूं कि मैं अब रेडिस को समझता हूं और यह कैसे उपयोगी है। कमाल यह है कि इसके बारे में इतना कुछ सुनने के बाद यह एक अपेक्षाकृत सरल लेख था।

लेख का एक उद्धरण:

रेडिस कई मायनों में अन्य डेटाबेस सॉल्यूशंस से अलग है: यह मेमोरी को मुख्य स्टोरेज सपोर्ट और डिस्क के रूप में केवल दृढ़ता के लिए उपयोग करता है, डेटा मॉडल बहुत ही अनोखा है, यह सिंगल थ्रेडेड और आगे है। मुझे लगता है कि एक और बड़ा अंतर यह है कि अपने उत्पादन वातावरण में रेडिस का लाभ उठाने के लिए आपको रेडिस पर स्विच करने की आवश्यकता नहीं है। आप इसका उपयोग नई चीजों को करने के लिए कर सकते हैं जो पहले संभव नहीं थीं, या पुरानी समस्याओं को ठीक करने के लिए।

उन लेखों का उपयोग करें जिन पर लेख स्पर्श करता है:

  • अपने होम पेज में नवीनतम आइटम लिस्टिंग को धीमा करें
  • लीडरबोर्ड और संबंधित समस्याएं
  • उपयोगकर्ता के वोट और समय के अनुसार ऑर्डर करें
  • कार्यान्वयन वस्तुओं पर समाप्त हो रहा है
  • सामान गिनना
  • एक निश्चित समय में अद्वितीय एन आइटम
  • आँकड़े, एंटी स्पैम या जो कुछ भी हो रहा है, उसका वास्तविक समय विश्लेषण
  • पब / उप
  • कतार
  • कैशिंग

यह लेख बहुत उपयोगी है, मेरे पास वह है जो मैं जानना चाहता था
होस मर्करी

@ Zenw0lf सरल कैशिंग के लिए रेडिस अभी भी सबसे अच्छा है? आपकी पोस्ट २०११ की है, इसलिए यह निश्चित नहीं है कि अगर मैं कुछ और उपयोग करूं।
मूंदड़ा

@ मोहोद्रा हां, यह परियोजना अभी भी बहुत जीवित है और यह निर्माता लगातार रिलीज करता है। यह अभी भी विभिन्न उपयोग परिदृश्यों के लिए एक शानदार परियोजना है!
zenw0lf

@ zenw0lf अच्छा लेख, लेकिन मैं अभी भी कुछ उपयोग के मामले में थोड़ा भ्रमित हूं। उदाहरण के लिए "नवीनतम आइटम" उपयोग मामला, इस मामले में रेडिस को जोड़ना बेहतर क्यों है? डेटाबेस में क्या है हम एक विशिष्ट तालिका में केवल उपयोगकर्ता आईडी, टिप्पणी (आईडी), और / या टाइमस्टैम्प जोड़ने के लिए जोड़ते हैं, और इसे सीधे उपयोग करते हैं। क्या यह वही नहीं होगा?
टोनी लिन

1
@TonyLin यह दोनों है, यह तेज़ है क्योंकि यह इन-मेमोरी है और क्योंकि रेडिस के पास अत्याधुनिक डेटा मॉडल का एक अच्छा अच्छा कार्यान्वयन है ताकि वह अपने काम को सबसे अच्छा कर सके।
zenw0lf

9
  • मैं वास्तविक समय की परियोजनाओं पर रेडिस का उपयोग करना पसंद करूंगा। मैंने हाल ही में एक जीपीएस ट्रैकिंग सिस्टम के लिए किया था जो पहले एक डेटाबेस के रूप में mysql पर बनाया गया था।

    फायदा

    1. हर बार ट्रैकर द्वारा प्रसारित डेटा के लिए मुझे mysql कनेक्शन खोलने और उस पर स्टोर करने की आवश्यकता नहीं है। हम इसे रेडिस पर सहेज सकते हैं और बाद में कुछ अन्य प्रक्रिया का उपयोग करके माइस्कल में स्थानांतरित कर सकते हैं। यह म्यूटेंट ट्रैकर से mysql तक समवर्ती कनेक्शन से बचना होगा।
    2. मैं उन सभी gps डेटा और अन्य क्लाइंट (जावास्क्रिप्ट / एंड्रॉइड) को प्रकाशित कर सकता हूं जो वास्तविक समय में सदस्यता ले सकते हैं, जो मैसेजिस पर आधारित संदेश कतार का उपयोग करके कर सकते हैं
    3. मैं रियल टाइम अलर्ट ट्रिगर कर सकता हूं

3

हाथ से एक बात यह है कि रेडिस एक संबंधपरक डेटाबेस नहीं है। यदि आपको SQL "JOIN" की आवश्यकता है, तो आप Redis, और न ही किसी अन्य गैर-संबंधपरक डेटाबेस का उपयोग नहीं करना चाहेंगे। अधिकांश रिलेशनल डेटाबेस की तुलना में रेडिस तेज़ है। यदि आप केवल कुंजी: मूल्य जोड़ी प्रश्नों को करने जा रहे हैं, तो आप Redis का उपयोग करना चाहते हैं।


उदाहरण के लिए, क्या किसी उपयोगकर्ता सत्र के बारे में जानकारी के लिए रेडिस का उपयोग करना अच्छा होगा ताकि यह नाम, ईमेल, आईडी आदि का उपयोग करने के लिए तेज हो?
क्रिस अब्राम

मुझे ऐसा लगता होगा। मेरे विचार से क्योटो मंत्रिमंडल और भी तेज होगा।
एहीवुतोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.