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ímkey: 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ímkey: 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ímkey: 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"