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

नाम टकराव से बचने के लिए रेडिस पर नेमस्पेस कीज़ कैसे करें?

समाधान 1:विभिन्न मॉड्यूल के डेटा को विभिन्न रेडिस उदाहरणों में संग्रहीत करें

सबसे सख्ती से अलगाव प्रत्येक मॉड्यूल के डेटा को एक व्यक्तिगत रेडिस उदाहरण में संग्रहीत कर रहा है, यानी एक व्यक्तिगत रेडिस प्रक्रिया।

समाधान 2:अलग-अलग मॉड्यूल के डेटा को एक ही रेडिस इंस्टेंस के अलग-अलग डेटाबेस में स्टोर करें

एक रेडिस इंस्टेंस में कई डेटाबेस हो सकते हैं, और आप कॉन्फ़िगरेशन फ़ाइल में डेटाबेस की संख्या को कॉन्फ़िगर कर सकते हैं। डिफ़ॉल्ट रूप से, 16 डेटाबेस होते हैं।

इन डेटाबेस को शून्य-आधारित संख्यात्मक अनुक्रमणिका के साथ नामित किया गया है। चयन कमांड के साथ, आप ith . का उपयोग कर सकते हैं डेटाबेस। चयन के बाद, बाद की कोई भी कमांड ith . पर काम करेगी डेटाबेस।

इसलिए, यदि आप प्रत्येक मॉड्यूल के लिए एक स्वतंत्र डेटाबेस असाइन करते हैं, तो आप नाम टकराव से बच सकते हैं।

नोट :यह समाधान Redis Cluster के साथ काम नहीं करता है . Redis Cluster केवल आपको 0वें . का उपयोग करने की अनुमति देता है डेटाबेस।

समाधान 3:कुंजी उपसर्ग के साथ नाम स्थान बनाएं

यदि आपके सभी डेटा को एक ही डेटाबेस में संग्रहीत किया जाना है, तो भी आप परोक्ष रूप से नाम स्थान बना सकते हैं कुंजी उपसर्ग . के साथ . प्रत्येक मॉड्यूल के लिए, इस मॉड्यूल के सभी डेटा में समान कुंजी पैटर्न होना चाहिए:ModuleName:KeyName , यानी इस मॉड्यूल की प्रत्येक कुंजी का एक ही उपसर्ग है:ModuleName .

चूंकि प्रत्येक मॉड्यूल का एक अलग नाम है, इसलिए इन मॉड्यूलों के बीच कोई नाम टकराव नहीं होगा:

// Set keys for module1
SET module1:key1 value
SET module1:key2 value

// Set keys for module2
SET module2:key1 value
SET module2:key2 value

नोट :यह समाधान Redis Cluster . के साथ भी काम करता है ।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मेरे डोमेन में उठाए गए ईवेंट से RedMQ में हैंडलर कैसे सेट करें?

  2. क्या मैं ब्राउज़र में चल रहे जावास्क्रिप्ट से सीधे रेडिस सर्वर से जुड़ सकता हूं?

  3. रेडिस सिंक और EXEC

  4. लारवेल और रेडिस स्कैन

  5. Redis क्लस्टर के साथ StackExchange.Redis क्लाइंट का उपयोग करना