原文
http://www.redis.io/commands/zunionstore
简介
Add multiple sorted sets and store the resulting sorted set in a new key.
计算多个有序集合的并集,并把结果有序集合存在到一个新的key。
语法
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
版本
Available since 2.0.0.
自2.0.0版本可用。
时间复杂度
Time complexity: O(N)+O(M log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.
O(N)+O(M log(M)):N是输入有序集合的大小的总和,M是结果有序集合的元素的数量。
描述
Computes the union of numkeys sorted sets given by the specified keys, and stores the result in destination. It is mandatory to provide the number of input keys (numkeys) before passing the input keys and the other (optional) arguments.
计算指定的有序集合的并集,并把结果存储在有序集合destination。在输入key和其他可选参数之前,必须提供输入key的数量numkeys。
By default, the resulting score of an element is the sum of its scores in the sorted sets where it exists.
默认情况下,一个元素的结果分数是它存在的有序集合中它的分数的总和。
Using the WEIGHTS option, it is possible to specify a multiplication factor for each input sorted set. This means that the score of every element in every input sorted set is multiplied by this factor before being passed to the aggregation function. When WEIGHTS is not given, the multiplication factors default to 1.
使用WEIGHTS选项,可以为每个输入有序集合指定一个乘积因子。这意味着每个输入有序集合中每个元素的分数在传给聚合函数之前要先乘以这个因子。当没有指定WEIGHTS时,乘积因子的默认值是1。
With the AGGREGATE option, it is possible to specify how the results of the union are aggregated. This option defaults to SUM, where the score of an element is summed across the inputs where it exists. When this option is set to either MIN or MAX, the resulting set will contain the minimum or maximum score of an element across the inputs where it exists.
使用AGGREGATE选项,可以指定并集的结果如何被聚合。这个选项的默认值是SUM,元素的分数是所有它存在的有序集合的分数之和。当这个选项设置为MIN或MAX时,结果集合将包含元素的最小或最大分数。
If destination already exists, it is overwritten.
如果destination已经存在,将会被覆盖。
返回值
Integer reply: the number of elements in the resulting sorted set at destination.
Integer:结果有序集合中元素的数量。
例子
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>
相关推荐
它的数据结构包括字符串、哈希、列表、集合、有序集合等,支持丰富的操作命令,使得在处理各种数据需求时非常灵活。 Redis-3.2.1版本引入了一些重要特性,如Redis Cluster,这是Redis的分布式解决方案,支持数据...
Redis是一个开源的高性能键值对数据库,它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)和范围查询、位图、超日志和地理空间索引等。Redis...
- `ZUNIONSTORE` 和 `ZINTERSTORE` 命令用于执行有序集合的并集和交集操作。 - `ZSCAN` 命令用于迭代有序集合。 ### 发布/订阅(Pub/Sub) 发布/订阅是一种消息传递机制,允许客户端订阅一个或多个频道,并接收发布...
6. **Improved Sorted Sets**:优化了有序集合的操作,包括ZINTERSTORE和ZUNIONSTORE等命令,提高了性能。 三、Redis安装与配置 1. **下载**:首先从官方网站或第三方镜像站点下载Redis 3.2.9的源码包或预编译包。 ...
- **ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]**:将多个有序集合的并集储存到`destination`。 - **ZINTERSTORE destination numkeys key [key ...] ...
Redis中的Sorted Set(有序集合)是一个非常重要的数据结构,它结合了Set(集合)的数据特性与Score(分数)的功能,可以实现对集合元素的排序。本文将深入探讨Sorted Set的基本概念、操作命令以及实际应用场景。 ...
17. **ZUNIONSTORE**:计算多个有序集合的并集,存储在新的有序集合中。 18. **ZSCAN**:迭代有序集合中的元素,用于遍历成员和分数。 有序集合的实现基于跳跃表(Skip List),这使得添加、删除和查找操作的时间...
Redis支持丰富的命令操作,如`SET`、`GET`用于设置和获取键值,`INCR`、`DECR`进行原子递增或递减操作,`LPUSH`、`RPOP`操作列表,`HSET`、`HGET`操作哈希表,`SADD`、`SMEMBERS`处理集合,`ZADD`、`ZRANGE`管理有序...
- **评分的聚合**:`ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]`命令计算给定有序集合的并集,并存储在destination键中。 ##### 哈希操作 - **设置...
- 集合运算:`ZUNIONSTORE/INTERSTORE destination keys...` 对有序集合进行并集或交集操作,并将结果存入新的有序集合。 6. GeoSpatial(地理空间) - 地理坐标添加:`GEOADD key long lat member ...` 添加地理...
- **Sorted Set改进**:增加了`ZUNIONSTORE`和`ZINTERSTORE`操作的`WEIGHTS`参数,使得在多个集合合并时可以为每个集合指定权重,增强了聚合计算的能力。 - **HyperLogLog**:这是一种概率型数据结构,用于估算不...
Redis 3.0.501还包括了一些其他特性,如sorted sets(有序集合)的ZINTERSTORE和ZUNIONSTORE命令,它们能对多个有序集合进行交集和并集运算,并可按指定权重计算结果。这在数据分析和排行榜等功能中非常实用。 在...
ZRANK、ZREVRANK返回元素在集合中的排名,ZREM、ZREMRANGEBYRANK、ZREMRANGEBYSCORE分别用于移除元素、按排名移除元素和按分数移除元素,ZSCORE返回元素的分数,ZUNIONSTORE、ZINTERSTORE分别用于计算多个有序集合的...
- `zunionstore dstkey key1 key2 … keyN [weights weight1 weight2 …] [aggregate sum|min|max]`:合并多个有序集合,结果存入`dstkey`,可选`weights`和`aggregate`参数进行加权和聚合操作。 - `zinterstore ...
- **评分的聚合**:使用`ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM/MIN/MAX]`命令来进行多个有序集合的聚合操作。 ##### 哈希操作 - **设置hash值**:使用`...
Redis有序集合的常用命令主要包括: 1. **ZADD**:向有序集合中添加一个或多个成员及其分数。如果成员已存在,则更新其分数。例如: ```shell 127.0.0.1:6379> ZADD myzadd 1 a 2 b 3 c ``` 2. **ZRANGE**:...
17. **ZUNIONSTORE/ZINTERSTORE**: 有序集合操作,`ZUNIONSTORE destkey keys [weights] [AGGREGATE SUM|MIN|MAX]` 和 `ZINTERSTORE destkey keys [weights] [AGGREGATE SUM|MIN|MAX]`。 除了上述命令,Redis还支持...
- **评分的聚合**:使用`ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]`命令计算多个有序集合的并集。 #### 哈希操作 - **设置hash值**:使用`HSET key ...
- **ZUNIONSTORE**:计算给定的多个有序集合的并集,并将其结果保存在新的有序集合中。 - **ZINTERSTORE**:计算给定的多个有序集合的交集,并将其结果保存在新的有序集合中。 - **ZSCAN**:迭代有序集合中的元素...