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

रेडिस सॉर्ट किए गए सेट का उपयोग करके इंडेक्सिंग

  1. मैं इसके लिए रेडिस के उपयोग को दृढ़ता से हतोत्साहित करता हूं। आप अतिरिक्त सूचक डेटा का एक टन संग्रहीत करेंगे, और यदि आप कभी भी निर्णय लेते हैं कि आप अधिक जटिल प्रश्न करना चाहते हैं, जैसे SELECT WHERE first_name LIKE 'jon%' आप मुसीबत में पड़ने वाले हैं। यदि आप एक ही समय में दो क्षेत्रों की खोज करना चाहते हैं, तो आपको कई स्तंभों को पार करने वाले अतिरिक्त, बहुत बड़े अनुक्रमित करने की भी आवश्यकता होगी। आपको अनिवार्य रूप से हैकिंग को दूर रखने और एक खोज ढांचे को फिर से तैयार करने की आवश्यकता होगी। आप इलास्टिक सर्च या सोलर, या पहले से बनाए गए किसी भी अन्य ढांचे का उपयोग करने से बेहतर होंगे जो आप करने की कोशिश कर रहे हैं। रेडिस कमाल का है और इसके बहुत सारे अच्छे उपयोग हैं। यह उनमें से एक नहीं है।

  2. अपने वास्तविक प्रश्न का उत्तर देने के लिए एक तरफ चेतावनी:मुझे लगता है कि आपको अपने पहले समाधान के एक प्रकार का उपयोग करके सबसे अच्छी सेवा दी जाएगी। प्रति अनुक्रमणिका एकल सॉर्ट किए गए सेट का उपयोग करें, लेकिन बस अपने अक्षरों को संख्याओं में बदलें। अपने अक्षरों को कुछ दशमलव मान में बदलें। आप ASCII मान का उपयोग कर सकते हैं, या बस प्रत्येक अक्षर को 1-26 मान को लेक्सिकोग्राफ़िक क्रम में असाइन कर सकते हैं, यह मानते हुए कि आप अंग्रेज़ी का उपयोग कर रहे हैं। मानकीकृत करें, ताकि प्रत्येक अक्षर समान संख्यात्मक लंबाई ले (इसलिए, यदि 26 आपकी सबसे बड़ी संख्या है, तो 1 को "01" लिखा जाएगा)। फिर बस इन्हें सामने एक दशमलव बिंदु के साथ जोड़ दें और इसका उपयोग प्रति इंडेक्स अपने स्कोर के रूप में करें (यानी "टोपी" ".080120" होगा)। यह आपको शब्दों और इन नंबरों के बीच एक उचित क्रम में 1-टू-1 मैपिंग करने देगा। जब आप खोज करते हैं, तो अक्षरों से संख्याओं में कनवर्ट करें, और फिर आप Redis के सभी अच्छे सॉर्ट किए गए सेट फ़ंक्शंस जैसे ZRANGEBYSCORE का उपयोग करने में सक्षम होंगे। उन्हें फिर से लिखने की आवश्यकता के बिना। Redis के फंक्शन बहुत ही बेहतरीन तरीके से लिखे गए हैं, इसलिए बेहतर होगा कि आप अपना खुद का लिखने के बजाय जब भी संभव हो उनका उपयोग करें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस सॉर्टेडसेट बैलेंस्ड ट्री के बजाय स्किप लिस्ट का उपयोग क्यों करता है?

  2. रेडिस `स्कैन`:नई आने वाली चाबियों के बीच संतुलन कैसे बनाए रखें जो उचित समय में अंतिम परिणाम से मेल खा सकें और सुनिश्चित कर सकें?

  3. रेडिस पबसुब क्या है और मैं इसका उपयोग कैसे करूं?

  4. Redis Windows7 पर विंडोज़ सेवा के रूप में प्रारंभ नहीं होता है

  5. रेडिस:सूची परिणाम का विश्लेषण कैसे करें