Hay una solución simple a su problema:ZINTERSTORE
funcionará con un SET
y un ZSET
. Prueba:
redis> sadd foo a
(integer) 1
redis> zadd bar 1 a
(integer) 1
redis> zadd bar 2 b
(integer) 1
redis> zinterstore baz 2 foo bar AGGREGATE MAX
(integer) 1
redis> zrange baz 0 -1 withscores
1) "a"
2) "1"
Editar: Agregué AGGREGATE MAX
anterior, ya que redis le dará a cada miembro del conjunto (no ordenado) foo
una puntuación predeterminada de 1
y SUM
que con cualquier puntaje que tenga en el conjunto (ordenado) bar
.