ZINTERCARD

返回多个有序集合的交集的成员数。

语法

ZINTERCARD numkeys key [key ...] [LIMIT limit]

引入版本:7.0.0

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

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

该命令与 ZINTER 类似,但它不返回结果集,而是仅返回结果的基数。

不存在的键被认为是空集。 With one of the keys being an empty set, the resulting set is also empty (since set intersection with an empty set always results in an empty set).

默认情况下,该命令计算所有给定集合的交集的基数。当提供可选的 LIMIT 参数(默认为 0,表示无限制)时,如果交集基数在计算过程中达到限制,算法将退出并产生限制作为基数。这种实现确保了限制低于实际交叉基数的查询的显着加速。

必需参数

numkeys

后面的键的数量。

key [key ...]

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

可选参数

LIMIT limit

一旦基数达到limit,就停止计数。 0(默认)表示无限制。

示例

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> ZINTER 2 zset1 zset2
1) "one"
2) "two"
redis> ZINTERCARD 2 zset1 zset2
(integer) 2
redis> ZINTERCARD 2 zset1 zset2 LIMIT 1
(integer) 1

Redis Software 与 Redis Cloud 兼容性

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

返回值

RESP2

整数回复:生成的交集中的成员数。

RESP3

整数回复:生成的交集中的成员数。

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