sql >> Databáze >  >> NoSQL >> Redis

Reverzní stránkování prostřednictvím seřazené sady Redis

Je triviální získat hodnocení prvku a poté pracovat podle indexů. Za předpokladu, že jedinými vstupy dostupnými pro vaši aplikaci jsou počáteční hranice skóre 72 a 46, můžete provést toto:

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> 

Jediným dalším voláním je O(log(N)) ZREVRANK volání. Odtud je to trochu matematiky na straně klienta, abyste získali nové indexy pro rozsah, který vás zajímá, a ZREVRANGE abyste získali požadované hodnoty.

Testoval jsem to na Redis 2.6rc5, ale mělo by to fungovat na jakékoli verzi nad 2.0.




  1. Redis Stack Exchange, jak odstranit nebo získat klíče podle vzoru

  2. Jak zastavit vkládání duplicitních dokumentů do kolekce mongodb

  3. Mohu upravit existující index v MongoDB, aniž bych jej zrušil?

  4. Odhalení Redis pomocí Ingress Nginx Controller