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

लिखने के पैमाने के रूप में लगातार हैशिंग

क्लस्टर में एकाधिक नोड्स का उपयोग करने के दो कारण हैं:

  • प्रत्येक नोड पर संग्रहीत डेटा की मात्रा को सीमित करने के लिए साझा करना
  • रीड लोड को कम करने के लिए दोहराव और बिना डेटा हानि के नोड को हटाने की अनुमति दें।

दोनों मौलिक रूप से अलग हैं, लेकिन आप दोनों को लागू कर सकते हैं - एक नोड के बजाय एक मानक मास्टर/स्लेव सेटअप के साथ नोड्स के एक सेट को इंगित करने के लिए लगातार हैशिंग का उपयोग करें।

यदि क्लस्टर कैश के बजाय आपका प्राथमिक डेटा स्टोर है, तो आपको एक अलग पुनर्वितरण रणनीति की आवश्यकता होगी जिसमें डेटा की प्रतिलिपि बनाना शामिल है।

मेरा कार्यान्वयन क्लाइंट को हैश के लिए 64k बाल्टी में से एक चुनने और एक टेबल रखने पर आधारित है जो उस बाल्टी को नोड में मैप करता है। प्रारंभ में, नोड #1 पर सभी मैप करें।

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




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. पायथन - कैसे जांचें कि रेडिस सर्वर उपलब्ध है या नहीं?

  2. हैश कुंजी के लिए रेडिस में कैसे खोजें?

  3. क्या .NET Core 3 में Redis कैश को स्टैक एक्सचेंज पैकेज के उपयोग की आवश्यकता है?

  4. StackExchange.Redis के साथ रेडिस कीस्पेस सूचनाएं

  5. एडब्ल्यूएस में चैट स्केलिंग के लिए विचार?