Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como o Redis pode classificar de acordo com dois conjuntos classificados diferentes?


Supondo que article_id é o valor de seus membros e que editor_id /day são as pontuações no respectivo Conjunto Ordenado e assumindo que cada article_id está presente em ambos Conjuntos classificados, você pode fazer o seguinte:
ZINTERSTORE t 2 k1 k2 WEIGHTS 100 1 AGGREGATE SUM

Explicação:
  • t é uma chave temporária que conterá o resultado
  • k1 é o Conjunto Ordenado que armazena o editor_id
  • k2 é o Conjunto Ordenado que armazena o day
  • o peso 100 multiplica editor_id por 100 (ou seja, "desloca" duas casas para a direita)
  • a AGGREGATE SUM resulta na seguinte pontuação:editor_id * 100 + day

Notas:
  • você pode usar ZUNIONSTORE em vez disso, para o mesmo resultado
  • o uso do peso 100 pressupõe que day é um valor de 2 dígitos