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

Làm thế nào để lưu trữ tập hợp các đối tượng đã được sắp xếp trong redis?

Việc sử dụng một khóa duy nhất để lưu trữ tất cả các hàm băm của bạn sẽ yêu cầu một số tuần tự hóa vì Redis không hỗ trợ cấu trúc dữ liệu lồng nhau. Kết quả sẽ như sau:

Phím
key: users:pro
         |
         +-----> field       value
                 name:Bruce  "age: 20, score: 100"
                 name:Ed     "age: 22, score: 80"

> HMSET users:pro name:Bruce "age: 20, score: 100" name:Ed "age:22, score:80"

Tập hợp được sắp xếp tương ứng sẽ là:

Phím
key: users:pro.by_scores
         |
         +---> scores:    80           100
         +---> values: "name:Ed"   "name:Bruce"

> ZADD users:pro.by_scores 80 "name:Ed" 100 "name:Bruce"

Lưu ý 1 :phương pháp này yêu cầu một ID duy nhất cho mỗi người dùng, hiện tại là name thuộc tính được sử dụng có thể có vấn đề.

Lưu ý 2 :để tránh tuần tự hóa (và giải mã hóa), bạn có thể cân nhắc sử dụng khóa chuyên dụng cho mỗi người dùng. Điều đó có nghĩa là làm:

Phím
key: users:pro:Bruce
         |
         +-----> field       value
                 age         20
                 score       100

key: users:pro:Ed
         |
         +-----> field       value
                 age         22
                 score       80

> HMSET users:pro:Bruce age 20 score 100
> HMSET users:pro:Ed age 22 score 80

key: users:pro.by_scores
         |
         +---> scores:      80                100
         +---> values: "users:pro:Ed"   "users:pro:Bruce"

> ZADD users:pro.by_scores 80 "users:pro:Ed" 100 "users:pro:Bruce"



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. StackExchange Redis ChannelPrefix Not Scoping Keys

  2. Redis quét các phím bỏ qua

  3. Tập tin cấu hình thần để giám sát các quy trình hiện có?

  4. cách lưu trữ một đối tượng phức tạp trong redis (sử dụng redis-py)

  5. Mục đích của dấu hai chấm trong các phím Redis là gì