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

Come può Redis ordinare in base a due diversi set ordinati?

Supponendo che article_id è il valore dei tuoi membri e quel editor_id /day sono i punteggi nel rispettivo set ordinato e assumendo ogni article_id è presente in entrambi Set ordinati, puoi fare quanto segue:

ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM

Spiegazione:

  • t è una chiave temporanea che manterrà il risultato
  • k1 è il set ordinato che memorizza editor_id
  • k2 è il set ordinato che memorizza il day
  • il peso 100 moltiplica editor_id di 100 (cioè lo "sposta" di due posti a destra)
  • il AGGREGATE SUM risulta nel seguente punteggio:editor_id * 100 + day

Note:

  • puoi usare ZUNIONSTORE invece per lo stesso risultato
  • l'uso del peso 100 presuppone quel day è un valore a 2 cifre