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

Как да комбинираме сортираните набори Redis?

Има няколко начина да направите това, но правилният зависи от това, което се опитвате да направите. Например:

  1. Можете да използвате ZRANGEBYSCORE (или ZREVRANGEBYSCORE) във вашия код за всеки FEED:USER:n ключ и „сливане“ на отговорите в клиента
  2. Можете да направите ZUNIONSTORE на съответните ключове и след това да направите ZRANGEBYSCORE на резултата от клиента.
  3. Ако обаче вашите „емисии“ са големи, потокът на номер 2 трябва да бъде обърнат – първо диапазон и след това обединение.
  4. Можете също да извършвате подобни типове обработка изцяло от страна на сървъра с някои Lua скриптове.

РЕДАКТИРАНЕ:допълнителни разяснения

Re. 1 - Обединяването може да се извърши от страна на клиента на резултатите, които получавате от ZRANGEBYSCORE или можете да използвате Lua скриптове от страна на сървъра, за да направите това. Използвайте WITHSCORES, за да получите клеймото за време и да го слеете/сортирате. Независимо от избора ви на местоположение за изпълнение на този код (вероятно бих използвал Lua за локализиране на данни), внедряването зависи от вас - lmk, ако имате нужда от помощ за това :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Най-ефективният начин да получите няколко хеша в Redis?

  2. Redis Expire не работи

  3. Stackexchange.redis няма поддръжка за WAIT

  4. UUID съкращаване

  5. Какъв е максималният размер на стойността, който можете да съхранявате в redis?