ZINTERSTORE

将多个有序集合的交集存储在一个键中。

语法

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE ]

引入版本:2.0.0

复杂度摘要:O(N*K)

[!NOTE] 此命令的行为在集群 Redis 环境中有所不同。请参阅 多键操作 页面了解更多信息。

计算由指定键给出的 numkeys 有序集合的交集,并将结果存储在 destination 中。在传递输入键和其他(可选)参数之前,必须提供输入键的数量 (numkeys)。

默认情况下,元素的结果分数是其所在有序集合中的分数之和。因为交集要求一个元素是每个给定有序集合的成员,所以这会导致结果有序集合中每个元素的分数等于输入有序集合的数量。

有关 WEIGHTS 和 AGGREGATE 选项的说明,请参阅 ZUNIONSTORE。

如果 destination 已存在,则将其覆盖。

必需参数

destination

存储结果有序集合的键。

numkeys

后面的键的数量。

key [key ...]

一个或多个要相交的有序集合键。

可选参数

WEIGHTS weight [weight ...]

每个输入集的乘法因子;在聚合之前,每组的分数乘以其权重。每组默认为 1。

AGGREGATE SUM | MIN | MAX | COUNT

如何合并多个集合中存在的成员的分数:SUM(默认)、MIN、MAX 或 COUNT。

示例

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 Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

整数回复:目的地 处生成的有序集合中的成员数。

RESP3

整数回复:目的地 处生成的有序集合中的成员数。

资料来源:Redis 官方 ZINTERSTORE 文档;中文内容参考 Redis 文档许可。