Redis
 sql >> Database >  >> NoSQL >> Redis

Come combinare i set ordinati Redis?

Ci sono un paio di modi per farlo, ma quello giusto dipende da cosa stai cercando di fare. Ad esempio:

  1. Puoi usare ZRANGEBYSCORE (o ZREVRANGEBYSCORE) nel tuo codice per ogni FEED:USER:n digitare e "unire" le risposte nel client
  2. Puoi fare uno ZUNIONSTORE sui tasti rilevanti e poi fare lo ZRANGEBYSCORE sul risultato del client.
  3. Tuttavia, se i tuoi "feed" sono di grandi dimensioni, il flusso di #2 dovrebbe essere invertito:prima l'intervallo e poi l'unione.
  4. Potresti anche eseguire tipi simili di elaborazione interamente lato server con alcuni script Lua.

EDIT:ulteriori chiarimenti

Rif. 1 - L'unione potrebbe essere eseguita lato client sui risultati ottenuti da ZRANGEBYSCORE oppure è possibile utilizzare script Lua lato server per farlo. Usa WITHSCORES per ottenere il timestamp e unirlo/ordinarlo. Indipendentemente dalla posizione scelta per l'esecuzione di questo codice (probabilmente userei Lua per la località dei dati), l'implementazione dipende da te - lmk se hai bisogno di aiuto :)