SINTERCARD

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

语法

SINTERCARD numkeys key [key ...] [LIMIT limit]

引入版本:7.0.0

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

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

该命令与 SINTER 类似,但它不返回结果集,而是仅返回结果的基数。返回由所有给定集合的交集产生的集合的基数。

不存在的键被认为是空集。 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> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key1 "d"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"
2) "d"
redis> SINTERCARD 2 key1 key2
(integer) 2
redis> SINTERCARD 2 key1 key2 LIMIT 1
(integer) 1

Redis Software 与 Redis Cloud 兼容性

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

返回值

RESP2

整数回复:生成的交集中的元素数量。

RESP3

整数回复:生成的交集中的元素数量。

参见

SINTER | SINTERSTORE

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