Redis
 sql >> база данни >  >> NoSQL >> Redis

Обратно пагинация чрез сортиран набор Redis

Тривиално е да получите ранга за елемент и след това да работите по индекси. Предполагайки, че единствените налични данни за вашето приложение са първоначалните граници на резултата от 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.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Може ли някой да обясни командата redis setbit?

  2. Каква е разликата между метода HSET и HMSET в базата данни Redis

  3. Компресия в node.js

  4. Как да работим с двойки потребител и сокет с node.js + redis

  5. проблеми при задаване на бекенда на задачи celery в Python