Det er trivielt at få rangeringen for et element og derefter arbejde efter indekser. Hvis du antager, at de eneste input, der er tilgængelige for din ansøgning, er de indledende scoregrænser på 72 og 46, kan du gøre dette:
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>
Det eneste ekstra kald er O(log(N)) ZREVRANK
opkald. Derfra er det lidt klientside matematik at få de nye indekser for det område, du er interesseret i, og ZREVRANGE
for at få de værdier, du ønsker.
Jeg testede dette på Redis 2.6rc5, men det burde virke på enhver version over 2.0.