sql >> Base de Datos >  >> NoSQL >> Redis

¿Cómo puede Redis ordenar según dos conjuntos ordenados diferentes?

Suponiendo que article_id es el valor de sus miembros y ese editor_id /day son las puntuaciones en el conjunto ordenado respectivo, y asumiendo que cada article_id está presente en ambos Conjuntos ordenados, puede hacer lo siguiente:

ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM

Explicación:

  • t es una clave temporal que mantendrá el resultado
  • k1 es el conjunto ordenado que almacena el editor_id
  • k2 es el conjunto ordenado que almacena el day
  • el peso 100 multiplica editor_id por 100 (es decir, "cambia" dos lugares a la derecha)
  • la AGGREGATE SUM da como resultado la siguiente puntuación:editor_id * 100 + day

Notas:

  • puedes usar ZUNIONSTORE en cambio para el mismo resultado
  • el uso del peso 100 supone que day es un valor de 2 dígitos