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

Phân trang đảo ngược thông qua một tập hợp đã được phân loại của Redis

Việc lấy thứ hạng cho một phần tử và sau đó làm việc theo các chỉ mục là một điều tầm thường. Giả sử rằng đầu vào duy nhất có sẵn cho ứng dụng của bạn là giới hạn điểm số ban đầu là 72 và 46, bạn có thể thực hiện điều này:

redis 127.0.0.1:6379> ZREVRANGEBYSCORE mySortedSet 72 (46
1) "G"
2) "F"
3) "E"
redis 127.0.0.1:6379> ZREVRANK mySortedSet G
(integer) 4
redis 127.0.0.1:6379> ZREVRANGE mySortedSet 1 3
1) "J"
2) "I"
3) "H"
redis 127.0.0.1:6379> 

Lệnh gọi bổ sung duy nhất là O (log (N)) ZREVRANK gọi điện. Từ đó, cần một chút phép toán phía máy khách để có được các chỉ mục mới cho phạm vi mà bạn quan tâm và ZREVRANGE để có được những giá trị bạn muốn.

Tôi đã thử nghiệm điều này trên Redis 2.6rc5, nhưng nó sẽ hoạt động trên bất kỳ phiên bản nào trên 2.0.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. làm thế nào để bạn đọc tất cả các byte có trên kết nối tcp?

  2. triển khai bộ nhớ cache ngoài quy trình bằng Redis trong windows azure

  3. python-rq worker tự động đóng

  4. Redis kết nối ECONNREFUSED 127.0.0.1:6379

  5. Làm cách nào để triển khai hàng đợi phân tán đồng thời duy nhất này trong bất kỳ nền tảng MQ nào?