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

Redis . में फ़िल्टरिंग तत्व

<ब्लॉकक्वॉट>

आप रेडिस में अंतिम स्कीमा कैसे कार्यान्वित करते हैं? क्या यह संभव है?

रेडिस स्कीमा-रहित है . आइए कॉल करें कि आपको क्या चाहिए डेटा संग्रहण दृष्टिकोण

एक संभावित तरीका HSET . का उपयोग कर रहा है या HMSET इन JSON ऑब्जेक्ट्स को आईडी से जोड़ने के लिए, जहां उनकी आईडी कुंजी . है और JSON टेक्स्ट मान है . हम इस हैश को users:byid . कहेंगे ।

यह समस्या का पहला भाग है। अब आप वस्तुओं को आईडी द्वारा प्राप्त कर सकते हैं ।

अब अगला मुद्दा यह है कि आप वस्तुओं को उस श्रेणी में पुनः प्राप्त करना चाहते हैं जिसे आप रैंकिंग . कहते हैं . इसे प्राप्त करने के लिए, आपको ZADD . का उपयोग करके अपनी वस्तुओं को एक क्रमबद्ध सेट में संग्रहीत करने की आवश्यकता है . क्रमबद्ध सेट क्रमबद्ध हैं स्कोर के आधार पर, और आइटम स्कोर के साथ स्टोर किए जाते हैं . यह आपके उपयोग के मामले के लिए एकदम सही लगता है!

असल में आप ऑब्जेक्ट आईडी को पूरे सॉर्ट किए गए सेट में स्टोर करने जा रहे हैं:

zadd users:byranking 10 1 5 2

... जहां 10 स्कोर है (अर्थात आपका वास्तविक रैंकिंग मान) और 1 id और इसी तरह।

तो, आप रैंकिंग के आधार पर आइटम कैसे फ़िल्टर करते हैं? ZRANGEBYSCORE . का उपयोग करना :

  • 10 को छोड़कर, 0 और 10 के बीच रैंकिंग करके। zrangebyscore users:byranking 0 (10
  • 10 सहित 0 और 10 के बीच रैंकिंग करके। zrangebyscore users:byranking 0 10

तथाकथित ZRANGEBYSCORE आपको पुनर्प्राप्त उपयोगकर्ताओं की आईडी देगा। आप उनका JSON टेक्स्ट कैसे प्राप्त करते हैं? HMGET Using का उपयोग करना :

 HMGET users:byid 1 2

...जो दोनों उपयोगकर्ता को id . के साथ मिलेगा 1 और 2 , अगर 10 रैंकिंग समावेशी है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ElasticBeanstalk EC2 Fails से Redis (ElastiCache) से कनेक्शन

  2. सी # से स्टैक एक्सचेंज/सेंटिनल के साथ रेडिस विफलता

  3. रेडिस में हैश से एक विशिष्ट पैटर्न से मेल खाने वाली सभी कुंजी कैसे प्राप्त करें?

  4. नोडज और रेडिस-नोड के साथ एसिंक प्रोग्रामिंग प्रतिमान

  5. क्या कोई रेडिस सेटबिट कमांड की व्याख्या कर सकता है?