教程 > Redis教程 > Redis 命令 阅读:61

Redis ZUNIONSTORE 命令

Redis ZUNIONSTORE 命令

返回 Redis有序集合(sorted sets)


Redis ZUNIONSTORE 用于计算给定的numkeys个有序集合的并集,并且把结果放到destination中。

在给定要计算的key和其它参数之前,必须先给定key个数(numkeys)。

默认情况下,结果集中某个成员的score值是所有给定集中该成员score值之和。

语法

redis ZUNIONSTORE 命令基本语法如下:

redis 127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

参数说明

使用WEIGHTS选项,你可以为每个给定的有序集指定一个乘法因子,意思就是,每个给定有序集的所有成员的score值在传递给聚合函数之前都要先乘以该因子。如果WEIGHTS没有给定,默认是 1。

使用AGGREGATE选项,你可以指定并集的结果集的聚合方式。默认使用的参数SUM,可以将所有集合中某个成员的score值之和作为结果集中该成员的score值。如果使用参数MIN或者MAX,结果集就是所有集合中该元素最小或最大score。

如果destination存在,会被覆盖。

可用版本

>= 2.0.0

返回值

保存到 destination 的结果集的成员数量。

实例

redis 127.0.0.1:6379> ZADD zset1 1 "one"
(integer) 1
redis 127.0.0.1:6379> ZADD zset1 2 "two"
(integer) 1
redis 127.0.0.1:6379> ZADD zset2 1 "one"
(integer) 1
redis 127.0.0.1:6379> ZADD zset2 2 "two"
(integer) 1
redis 127.0.0.1:6379> ZADD zset2 3 "three"
(integer) 1
redis 127.0.0.1:6379> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis 127.0.0.1:6379> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"

时间复杂度

ZUNIONSTORE 命令时间复杂度: O(N)+O(M log(M)) 其中N是输入的有序集合的大小的和。M是执行之后得到的有序集合中的元素的个数。

返回 Redis有序集合(sorted sets)

查看笔记

扫码一下
查看教程更方便