ZINTERSTORE 命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination。
命令格式
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
默认情况下,WEIGHTS
是1,AGGREGATE
是 SUM
,即结果集中某个成员的分数值是所有给定集下该成员分数值之和。
可用版本:>=2.0.0
时间复杂度:O(N*K)+O(M*log(M)),N 为给定 key 中基数最小的有序集, K 为给定有序集的数量,M 为结果集的基数
命令返回值
保存到 destination 的结果集的基数(成员的个数)。
示例
redis> ZADD myzset 1 member_one
(integer) 1
redis> ZADD myzset 2 member_two
(integer) 1
redis> ZADD myzset1 1 member_one
(integer) 1
redis> ZADD myzset1 2 member_two
(integer) 1
redis> ZADD myzset1 3 member_three
(integer) 1
redis> ZINTERSTORE out 2 myzset myzset1 WEIGHTS 1 2
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "member_one"
2) "3"
3) "member_two"
4) "6"