Làm cách nào để bạn triển khai lược đồ cuối cùng trong Redis? Có thể không?
Redis là lược đồ ít hơn . Hãy gọi những gì bạn cần là phương pháp lưu trữ dữ liệu .
Một phương pháp khả thi là sử dụng HSET
hoặc HMSET
để thêm các đối tượng JSON này theo id, trong đó id của chúng là khóa và văn bản JSON là giá trị . Chúng tôi sẽ gọi hàm băm này là users:byid
.
Đây là phần đầu tiên của vấn đề. Bây giờ bạn có thể lấy các đối tượng theo id .
Bây giờ, vấn đề tiếp theo là bạn muốn truy xuất các đối tượng trong một phạm vi mà bạn gọi là xếp hạng . Để có được điều này, bạn cần lưu trữ các đối tượng của mình trong một tập hợp được sắp xếp bằng cách sử dụng ZADD
. Các nhóm được sắp xếp được sắp xếp theo điểm số và các mục được lưu trữ với điểm số . Nó có vẻ hoàn hảo cho trường hợp sử dụng của bạn!
Trên thực tế, bạn sẽ lưu trữ id đối tượng trong toàn bộ tập hợp được sắp xếp:
Người dùng zadd users:byranking 10 1 5 2
... trong đó 10
là điểm số (tức là giá trị xếp hạng thực tế của bạn) và 1 là id và như vậy.
Vì vậy, làm thế nào bạn lọc các mục theo xếp hạng? Sử dụng ZRANGEBYSCORE
:
- Bằng cách xếp hạng từ 0 đến 10, không bao gồm 10. Người dùng
zrangebyscore users:byranking 0 (10
- Bằng cách xếp hạng từ 0 đến 10, bao gồm 10. Người dùng
zrangebyscore users:byranking 0 10
Cái gọi là ZRANGEBYSCORE
sẽ cung cấp cho bạn id của những người dùng được truy xuất. Làm thế nào bạn nhận được văn bản JSON của họ? Sử dụng HMGET
:
HMGET users:byid 1 2
... sẽ nhận được cả người dùng có id 1
và 2
, nếu 10
xếp hạng là bao gồm.