किसी तत्व के लिए रैंक प्राप्त करना और फिर अनुक्रमणिका द्वारा काम करना तुच्छ है। यह मानते हुए कि आपके आवेदन के लिए उपलब्ध एकमात्र इनपुट 72 और 46 की प्रारंभिक स्कोर सीमा है, आप ऐसा कर सकते हैं:
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>
केवल अतिरिक्त कॉल O(log(N)) ZREVRANK
. है बुलाना। वहां से, आपकी रुचि की श्रेणी और ZREVRANGE
के लिए नई अनुक्रमणिका प्राप्त करने के लिए क्लाइंट साइड गणित का थोड़ा सा हिस्सा है अपने इच्छित मान प्राप्त करने के लिए।
मैंने Redis 2.6rc5 पर इसका परीक्षण किया, लेकिन इसे 2.0 से अधिक के किसी भी संस्करण पर काम करना चाहिए।