原文
http://redis.io/commands/zinterstore
简介
Intersect multiple sorted sets and store the resulting sorted set in a new key.
计算多个有序集合的交集,并存储到另一个有序集合。
语法
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
版本
Available since 2.0.0.
自2.0.0版本可用。
时间复杂度
Time complexity: O(N*K)+O(M*log(M)) worst case with N being the smallest input sorted set, K being the number of input sorted sets and M being the number of elements in the resulting sorted set.
O(N*K)+O(M*log(M)):N是最小的输入有序集合,K是输入有序集合的数量,M是结果有序集合中元素的数量。
描述
Computes the intersection 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的数量。
By default, the resulting score of an element is the sum of its scores in the sorted sets where it exists. Because intersection requires an element to be a member of every given sorted set, this results in the score of every element in the resulting sorted set to be equal to the number of input sorted sets.
默认情况下,一个元素的结果分数是所有这个元素存在的有序集合中分数的总和。因为交集要求一个元素是每个指定有序集合的成员,这造成结果有序集合中每个元素的分数等于输入有序集合的数量。
For a description of the WEIGHTS and AGGREGATE options, see ZUNIONSTORE.
对于WEIGHTS和AGGREGATE选项,查看ZUNIONSTORE命令。
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> ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "two"
4) "10"
redis>
相关推荐
Redis是一个开源的高性能键值对数据库,它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)和范围查询、位图、超日志和地理空间索引等。Redis...
它的数据结构包括字符串、哈希、列表、集合、有序集合等,支持丰富的操作命令,使得在处理各种数据需求时非常灵活。 Redis-3.2.1版本引入了一些重要特性,如Redis Cluster,这是Redis的分布式解决方案,支持数据...
- `ZUNIONSTORE` 和 `ZINTERSTORE` 命令用于执行有序集合的并集和交集操作。 - `ZSCAN` 命令用于迭代有序集合。 ### 发布/订阅(Pub/Sub) 发布/订阅是一种消息传递机制,允许客户端订阅一个或多个频道,并接收发布...
6. **Improved Sorted Sets**:优化了有序集合的操作,包括ZINTERSTORE和ZUNIONSTORE等命令,提高了性能。 三、Redis安装与配置 1. **下载**:首先从官方网站或第三方镜像站点下载Redis 3.2.9的源码包或预编译包。 ...
- **ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]**:将多个有序集合的交集储存到`destination`。 #### 七、其他数据类型 - **HyperLogLog**:提供了对...
5. **ZINTERSTORE**:计算多个有序集合的交集,并将结果存储在一个新的有序集合中,支持权重计算。 6. **ZLEXCOUNT**:根据字典顺序计算成员的数量,适用于字符串成员的比较。 7. **ZRANGE**:返回有序集合中指定...
Redis支持丰富的命令操作,如`SET`、`GET`用于设置和获取键值,`INCR`、`DECR`进行原子递增或递减操作,`LPUSH`、`RPOP`操作列表,`HSET`、`HGET`操作哈希表,`SADD`、`SMEMBERS`处理集合,`ZADD`、`ZRANGE`管理有序...
3. 计算集合交集:`ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]`,计算多个有序集合的交集,并将结果存储到destination集合。 六、哈希表(Hash) 1. ...
- **Sorted Set改进**:增加了`ZUNIONSTORE`和`ZINTERSTORE`操作的`WEIGHTS`参数,使得在多个集合合并时可以为每个集合指定权重,增强了聚合计算的能力。 - **HyperLogLog**:这是一种概率型数据结构,用于估算不...
Redis 3.0.501还包括了一些其他特性,如sorted sets(有序集合)的ZINTERSTORE和ZUNIONSTORE命令,它们能对多个有序集合进行交集和并集运算,并可按指定权重计算结果。这在数据分析和排行榜等功能中非常实用。 在...
ZRANK、ZREVRANK返回元素在集合中的排名,ZREM、ZREMRANGEBYRANK、ZREMRANGEBYSCORE分别用于移除元素、按排名移除元素和按分数移除元素,ZSCORE返回元素的分数,ZUNIONSTORE、ZINTERSTORE分别用于计算多个有序集合的...
它的命令丰富多样,涵盖字符串(String)、列表(List)、集合(Set)、有序集合(ZSet)等多种数据结构。以下是对Redis常用命令的详细介绍: 1. **通用命令**: - `exists key`:检查键`key`是否存在于数据库中。 - `del...
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还支持...
- **ZINTERSTORE**:计算给定的多个有序集合的交集,并将其结果保存在新的有序集合中。 - **ZSCAN**:迭代有序集合中的元素及其分数。 ##### 7. Pub/Sub(发布/订阅) 发布/订阅模式允许程序之间通过频道发送和...
- `zrevrank [key] [member]`:获取成员在有序集合中的排名(从大到小)。 - `zrem [key] [member]`:删除成员。 - `zincrby [key] [increment] [member]`:增加成员的分数。 - `zunionstore [destination] [numkeys...
- `ZADD sorted_set score member`:向有序集合中添加成员,并设置分数。 4. **Redis的数据持久化**: - RDB(快照):定期保存数据库状态到磁盘,用于灾难恢复。 - AOF(Append Only File):记录所有写操作,...
作为内存数据结构服务器,Redis 提供了丰富的数据类型,包括字符串、哈希、列表、集合和有序集合,以及多种操作这些数据类型的命令。本笔记将从初级到高级,深入探讨 Redis 的核心特性和高级用法。 ### 初级篇 1. ...
4. **Sorted Set 多键操作**:增加了 `ZUNIONSTORE` 和 `ZINTERSTORE` 命令的多键支持,可以在一次操作中合并多个有序集合,这对于聚合查询非常有用。 5. **Pipeline 优化**:Pipeline 允许一次性发送多个命令,...