Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment Redis peut-il trier selon deux ensembles triés différents ?

En supposant que article_id est la valeur de vos membres et que editor_id /day sont les scores dans l'ensemble trié respectif, et en supposant que chaque article_id est présent dans les deux Ensembles triés, vous pouvez effectuer les actions suivantes :

ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM

Explication :

  • t est une clé temporaire qui contiendra le résultat
  • k1 est l'ensemble trié qui stocke le editor_id
  • k2 est l'ensemble trié qui stocke le day
  • le poids 100 multiplie editor_id de 100 (c'est-à-dire "le décale" de deux positions vers la droite)
  • la AGGREGATE SUM donne le score suivant :editor_id * 100 + day

Remarques :

  • vous pouvez utiliser ZUNIONSTORE à la place pour le même résultat
  • l'utilisation du poids 100 suppose que day est une valeur à 2 chiffres