Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Odwrócona paginacja za pomocą posortowanego zestawu Redis

To trywialne, aby uzyskać rangę elementu, a następnie pracować według indeksów. Zakładając, że jedynymi danymi wejściowymi dostępnymi dla Twojej aplikacji są początkowe granice punktacji 72 i 46, możesz to zrobić:

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> 

Jedynym dodatkowym wywołaniem jest O(log(N)) ZREVRANK połączenie. Stamtąd jest trochę matematyki po stronie klienta, aby uzyskać nowe indeksy dla interesującego zakresu i ZREVRANGE aby uzyskać żądane wartości.

Przetestowałem to na Redis 2.6rc5, ale powinno działać na każdej wersji powyżej 2.0.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. przechowuj zakresy adresów IP w Redis

  2. Jak unieważnić części hierarchii (drzewa) danych w pamięci podręcznej Redis?

  3. Jak działa przełączanie awaryjne ServiceStack PooledRedisClientManager?

  4. Twisted:dlaczego przekazanie odroczonego wywołania zwrotnego do odroczonego wątku powoduje, że wątek nagle się blokuje?

  5. Rdbtools na Redis Conf18