- 用法
-
ZUNIONSTORE destination numkeys key [ key ... ] [ WEIGHTS weight ] [ [ WEIGHTS weight ] ... ] [ AGGREGATE SUM | MIN | MAX ]
- 复杂度
- O(N)+O(M log(M)),其中 N 是输入有序集合大小的总和,M 是结果有序集合中的元素数量。
- 自从
- 2.0.0
- ACL 分类
- @sortedset, @write, @slow
计算给定 numkeys
个有序集合的并集,并将结果存储在 destination
中。在传递输入键和其他(可选)参数之前,必须提供输入键的数量(numkeys
)。
默认情况下,一个元素的结果分数是它在存在的有序集合中所有分数的总和。
使用 WEIGHTS
选项,可以为每个输入有序集合指定一个乘数因子。这意味着每个输入有序集合中每个元素的分数在传递给聚合函数之前都会乘以这个因子。当未提供 WEIGHTS
时,乘数因子默认为 1
。
使用 AGGREGATE
选项,可以指定并集结果的聚合方式。此选项默认为 SUM
,即元素的分数在其存在的输入中进行求和。当此选项设置为 MIN
或 MAX
时,结果集将包含元素在其存在的输入中的最小或最大分数。
如果 destination
已存在,它将被覆盖。
注意
如果 WEIGHTS
或 AGGREGATE
选项被多次提供,则未定义哪个选项具有优先权。
示例
127.0.0.1:6379> ZADD zset1 1 "one"
(integer) 1
127.0.0.1:6379> ZADD zset1 2 "two"
(integer) 1
127.0.0.1:6379> ZADD zset2 1 "one"
(integer) 1
127.0.0.1:6379> ZADD zset2 2 "two"
(integer) 1
127.0.0.1:6379> ZADD zset2 3 "three"
(integer) 1
127.0.0.1:6379> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
127.0.0.1:6379> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"
RESP2/RESP3 回复
整数回复:结果有序集合中的元素数量。