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

Jak kombinovat seřazené sady Redis?

Existuje několik způsobů, jak to udělat, ale ten správný závisí na tom, co se snažíte udělat. Například:

  1. ZRANGEBYSCORE (nebo ZREVRANGEBYSCORE) můžete použít ve svém kódu pro každý FEED:USER:n klíč a "sloučit" odpovědi v klientovi
  2. Můžete provést ZUNIONSTORE na příslušných klíčích a poté provést ZRANGEBYSCORE na výsledku z klienta.
  3. Pokud jsou však vaše „informační kanály“ velké, měl by být tok č. 2 obrácený – nejprve rozsah a poté spojení.
  4. Podobné typy zpracování můžete také provádět zcela na straně serveru pomocí skriptování Lua.

UPRAVIT:další vysvětlení

Re. 1 - Sloučení lze provést na straně klienta na výsledcích, které získáte ze ZRANGEBYSCORE, nebo k tomu můžete použít skripty Lua na straně serveru. Použijte WITHSCORES k získání časového razítka a sloučení/třídění. Bez ohledu na vaši volbu umístění pro spuštění tohoto kódu (pravděpodobně bych použil Lua pro datovou lokalitu), implementace je na vás - lmk, pokud s tím potřebujete pomoc :)




  1. Unikátní index v mongoose nefunguje

  2. Mongoose 'statické' metody vs. 'instanční' metody

  3. Jak magento přichází s názvy klíčů mezipaměti?

  4. Může celery celerybeat používat databázový plánovač bez Djanga?