Istnieje proste rozwiązanie Twojego problemu:ZINTERSTORE
będzie działać z SET
i ZSET
. Wypróbuj:
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"
Edytuj: Dodałem AGGREGATE MAX
powyżej, ponieważ redis da każdemu członkowi (nieposortowanego) zestawu foo
domyślny wynik 1
i SUM
że z dowolnym wynikiem, który ma w (posortowanym) zestawie bar
.