Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/redis-command-zunionstore.html

Redis ZUNIONSTORE 命令

Redis 有序集合 Redis 有序集合


ZUNIONSTORE 命令计算给定的 numkeys 个有序集合的并集,并且把结果放到 destination 中。在给定要计算的 key 和其它参数之前,必须先给定 key 个数(numberkeys)。 默认情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之和。

命令格式

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

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

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

如果 key destination 存在,就被覆盖。

可用版本:>=2.0.0

时间复杂度:O(N)+O(M*log(M)) ,N 为 有序集合的基数(成员个数)的总和, M 为结果集的基数。

命令返回值

结果有序集合 destination 中元素个数。

示例

redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"
Redis OBJECT 命令允许从内部查看指定 key 的 Redis 对象信息。它通常用在调试,或者了解相关 key 是否使用特殊编码的 ...
SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。 ...
Redis GET 命令返回指定 key 所关联的字符串值。如果指定的 key 不存在时,返回特殊值 nil。此外,如果指定的 key 存储 ...
TYPE 命令返回指定 key 所储存的值的类型。 ...
Redis COMMAND 命令用于返回所有的 Redis 命令的详细信息,并以数组形式展示。 ...