SDIFFCARD

计算多个集合的差集元素数。

语法

SDIFFCARD numkeys key [key ...] [LIMIT limit]

引入版本:8.10.0

复杂度摘要:O(N)

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

返回第一组与所有连续组之间的差的基数。这是 SDIFF 的仅计数对应项:它仅返回差异中的元素数量,而不返回成员本身。

必需参数

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 key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "b"
2) "a"
redis> SDIFFCARD 2 key1 key2
(integer) 2
redis> SDIFFCARD 2 key1 key2 LIMIT 1
(integer) 1

详细说明

不存在的键被认为是空集。

当提供可选的 LIMIT 参数(默认为 0,表示无限制)时,如果差值基数在计算中途达到 limit,则该命令将停止并返回 limit 作为基数。这确保了限制低于实际差异基数的查询的显着加速。

Redis Software 与 Redis Cloud 兼容性

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

返回值

RESP2

整数回复:结果差值中的元素数量。

RESP3

整数回复:结果差值中的元素数量。

参见

SDIFF | SDIFFSTORE

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