Det är trivialt att få rankningen för ett element och sedan arbeta efter index. Förutsatt att de enda indata som är tillgängliga för din ansökan är de initiala poänggränserna för 72 och 46, kan du göra detta:
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 enda extra anropet är O(log(N)) ZREVRANK
ringa upp. Därifrån är det lite matematik på klientsidan för att få de nya indexen för intervallet du är intresserad av, och ZREVRANGE
för att få de värden du vill ha.
Jag testade detta på Redis 2.6rc5, men det borde fungera på alla versioner över 2.0.