Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

रेडिस पब/सब और रेडिस स्ट्रीम के बीच मुख्य अंतर क्या हैं?

डेटा संग्रहण

पब/सब एक प्रकाशक/सब्सक्राइबर प्लेटफॉर्म है, यह डेटा स्टोरेज नहीं है। प्रकाशित संदेश वाष्पित हो जाते हैं, भले ही कोई ग्राहक हो।

रेडिस स्ट्रीम में, स्ट्रीम एक डेटा प्रकार है, जो अपने आप में एक डेटा संरचना है। संदेशों या प्रविष्टियों को स्मृति में संग्रहीत किया जाता है और हटाए जाने का आदेश दिए जाने तक वहीं रहता है।

सिंक/एसिंक संचार (पुश/पुल)

पब/सब समकालिक संचार है (पुश मसविदा बनाना)। संवाद करने में सक्षम होने के लिए सभी पक्षों को एक ही समय में सक्रिय होने की आवश्यकता है। यहां रेडिस एक शुद्ध सिंक्रोनस मैसेजिंग ब्रोकर है।

Redis Streams दोनों तुल्यकालिक (XREAD .) के लिए अनुमति देता है BLOCK के साथ और विशेष $ आईडी एक पुश . है प्रोटोकॉल) और अतुल्यकालिक संचार (नियमित XREAD एक खींचें . है मसविदा बनाना)। XREAD BLOCK के साथ पब/सब की तरह है, लेकिन संदेशों को खोए बिना डिस्कनेक्शन पर फिर से शुरू करने की क्षमता के साथ।

वितरण शब्दार्थ

पब/सब कम से कम एक बार है, यानी "फायर एंड फॉरगेट"।

रेडिस स्ट्रीम कम से कम एक बार या कम से कम एक बार (रिसीवर द्वारा भेजी गई स्पष्ट पावती) दोनों के लिए अनुमति देता है

उपभोक्ताओं के लिए ब्लॉकिंग मोड

पब/सब केवल ब्लॉकिंग-मोड है। एक बार चैनल की सदस्यता लेने के बाद, ग्राहक को ग्राहक मोड में डाल दिया जाता है और यह आदेश जारी नहीं कर सकता ([P]SUBSCRIBE को छोड़कर) , [P]UNSUBSCRIBE , PING और QUIT ), यह केवल पढ़ने के लिए बन गया है।

Redis Streams उपभोक्ताओं को ब्लॉकिंग मोड में संदेश पढ़ने की अनुमति देता है या नहीं।

फैन-आउट

पब/सब केवल फैन-आउट है। सभी सक्रिय क्लाइंट को सभी संदेश मिलते हैं।

Redis Streams फैन-आउट की अनुमति देता है (XREAD . के साथ) ), लेकिन एक ही स्ट्रीम से कई क्लाइंट को संदेशों का एक अलग सबसेट प्रदान करने के लिए भी। यह अलग-अलग श्रमिकों को अलग-अलग संदेशों को रूट करके संदेश प्रसंस्करण को स्केल करने की अनुमति देता है, इस तरह यह संभव नहीं है कि एक ही संदेश कई उपभोक्ताओं तक पहुंचाया जा सके। यह अंतिम परिदृश्य उपभोक्ता समूहों . के साथ हासिल किया गया है ।

Redis Streams कई और सुविधाएँ प्रदान करती हैं, जैसे टाइम-स्टैम्प, फ़ील्ड-वैल्यू पेयर, रेंज, आदि। इसका मतलब यह नहीं है कि आपको हमेशा स्ट्रीम के लिए जाना चाहिए। यदि आपका उपयोग-मामला पब/सब के साथ हासिल किया जा सकता है, तो आपके लिए पब/सब का उपयोग करना बेहतर होगा। स्ट्रीम के साथ, आपको स्मृति उपयोग पर ध्यान देना होगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. डोकर रेल शुरू करने में विफल

  2. रेडिस में लुआ में वर्तमान दिनांक और समय प्राप्त करें

  3. Azure में ASP.NET कोर के साथ Redis में उपयोगकर्ता सत्र सहेजें

  4. क्या मुझे बड़ी संख्या में बाइनरी फाइलों को स्टोर करने के लिए रेडिस का उपयोग करना चाहिए?

  5. चर KEYS के साथ लुआ से रेडिस ज़ूनियनस्टोर को कॉल करना