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

रेडिस और क्वेरी मान

इन डेटा को रेडिस के साथ मॉडल करना निश्चित रूप से संभव है, लेकिन आपको डेटा संरचनाओं और एक्सेस पथों के संदर्भ में सोचने की आवश्यकता है। रेडिस के साथ एक्सेस पथों को अंतर्निहित रूप से प्रबंधित नहीं किया जाता है (जैसे आरडीबीएमएस/मोंगोडीबी में इंडेक्स के साथ)।

दिए गए उदाहरण के लिए, आपके पास हो सकता है:

user:<user hash> -> hash of user properties
user:<user hash>:sent -> set of <msg hash>
user:<user hash>:received -> set of <msg hash>
message:<msg hash> -> hash of message properties

किसी संदेश को जोड़ने/हटाने का अर्थ है प्रेषकों और प्राप्तकर्ताओं के अनुरूप *:भेजे गए और *:प्राप्त सेटों को बनाए रखना, संदेश ऑब्जेक्ट को जोड़ने/हटाने के शीर्ष पर।

किसी दिए गए उपयोगकर्ता के लिए भेजे गए या प्राप्त संदेशों को पुनर्प्राप्त करना केवल एक SMEMBERS आदेश है, या यदि आप उसी समय संदेश के गुणों को भी पुनर्प्राप्त करना चाहते हैं तो एक सॉर्ट करें:

# Get a list of message hash codes only in one roundtrip
smembers user:<user hash>:received

# Get a list of message contents in one roundtrip
sort user:<user hash>:received by nosort get message:*->sender get message:*->message

सॉर्ट का उपयोग करने के औचित्य के लिए, देखें:

  • Redis से कई प्रमुख मान प्राप्त करना
  • Redis/NoSQL में अवधारणा बनाने में मदद चाहिए

नोट 1: रेडिस के साथ यूयूआईडी या हैश कोड (विशेषकर सेट में) के बजाय कुंजी के रूप में पूर्णांकों का उपयोग करना बेहतर होता है, क्योंकि वे अधिक कुशल तरीके से संग्रहीत होते हैं।

नोट 2: यदि आपको संदेशों को ऑर्डर करने की आवश्यकता है, तो सेट के बजाय सूचियों का उपयोग किया जाना चाहिए। नतीजा यह है कि केवल सबसे पुराने संदेशों को हटाया जा सकता है, और केवल न्यूज़सेट संदेशों को एक कुशल तरीके से जोड़ा जा सकता है। आप शायद सभी संदेशों के लिए एक वैश्विक सूची भी जोड़ेंगे।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस सॉर्टेडसेट:दो मानों के समान स्कोर होने पर वर्णानुक्रम के बजाय संख्यात्मक क्रम में मान कैसे प्राप्त करें?

  2. जाओ JSON डिकोडिंग बहुत धीमी है। इसे करने का एक बेहतर तरीका क्या होगा?

  3. रेडिस के साथ वितरित लॉक कैसे बनाएं?

  4. विभिन्न मेजबानों पर रेडिस क्लस्टरिंग के क्या लाभ हैं?

  5. Node.js, WebSockets और Redis के साथ Resque उपयोग की कल्पना कैसे करें