Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

làm thế nào để quan hệ nhiều người với nhiều người trong redis

Với Redis, các mối quan hệ thường được biểu diễn bằng các tập hợp. Một tập hợp có thể được sử dụng để thể hiện mối quan hệ một chiều, vì vậy bạn cần một tập hợp cho mỗi đối tượng để thể hiện mối quan hệ nhiều-nhiều.

Sẽ khá vô ích nếu cố gắng so sánh một mô hình cơ sở dữ liệu quan hệ với các cấu trúc Redisdata. Với Redis, mọi thứ được lưu trữ theo cách không chuẩn hóa. Ví dụ:

# 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

Khi chúng ta có cấu trúc dữ liệu này, thật dễ dàng truy vấn nó bằng cách sử dụng đại số đã đặt:

# 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. Cách làm cho khách hàng tải xuống một tệp rất lớn được tạo ra một cách nhanh chóng

  2. Mac (os x):Có cách nào để CHỈ cài đặt redis-cli không?

  3. Cách sử dụng Redis Sorted Lists

  4. Spring Boot với Session / Redis Serialization Error with Bad Active Directory Ldap Credentials

  5. Làm cách nào để tìm Id phiên khi sử dụng express / connect và cửa hàng phiên?