Il existe une solution simple à votre problème :ZINTERSTORE
fonctionnera avec un SET
et un ZSET
. Essayez :
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"
Modifier : J'ai ajouté AGGREGATE MAX
ci-dessus, puisque redis donnera à chaque membre de l'ensemble (non trié) foo
un score par défaut de 1
, et SUM
qu'avec le score qu'il a dans l'ensemble (trié) bar
.