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

रेडिस में कई से कई संबंध कैसे रखें?

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

एक रिलेशनल डेटाबेस मॉडल की तुलना Redisdata संरचनाओं से करने की कोशिश करना बहुत बेकार है। रेडिस के साथ, सब कुछ एक असामान्य तरीके से संग्रहीत किया जाता है। उदाहरण:

# Here are my categories
> hset category:1 name cinema  ... more fields ...
> hset category:2 name music   ... more fields ...
> hset category:3 name sports  ... more fields ...
> hset category:4 name nature  ... more fields ...

# Here are my users
> hset user:1 name Jack   ... more fields ...
> hset user:2 name John   ... more fields ...
> hset user:3 name Julia  ... more fields ...

# Let's establish the many-to-many relationship
# Jack likes cinema and sports
# John likes music and nature
# Julia likes cinema, music and nature

# For each category, we keep a set of reference on the users
> sadd category:1:users 1 3
> sadd category:2:users 2 3
> sadd category:3:users 1
> sadd category:4:users 2 3

# For each user, we keep a set of reference on the categories
> sadd user:1:categories 1 3
> sadd user:2:categories 2 4
> sadd user:3:categories 1 2 4

एक बार जब हमारे पास यह डेटा संरचना हो जाती है, तो सेट बीजगणित का उपयोग करके इसे क्वेरी करना आसान होता है:

# Categories of Julia
> smembers user:3:categories
1) "1"
2) "2"
3) "4"

# Users interested by music
> smembers category:2:users
1) "2"
2) "3"

# Users interested by both music and cinema
> sinter category:1:users category:2:users
1) "3"


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस में वस्तु गुणों को संग्रहीत करना

  2. क्या आप Amazon के बाहर Amazon ElastiСache Redis से जुड़ सकते हैं?

  3. ASP.NET सत्र राज्य प्रदाता का उपयोग करके Redis सर्वर से कनेक्ट नहीं हो सकता

  4. क्या FUSE फाइल सिस्टम के साथ Linux VFS कैश रखना संभव है?

  5. क्या यह सर्विसस्टैक रेडिस का वैध उपयोग है?