SUNIONCARD

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

语法

SUNIONCARD numkeys key [key ...] [APPROX] [LIMIT limit]

引入版本:8.10.0

复杂度摘要:O(N)

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

返回给定集合的并集的基数。这是 SUNION 的仅计数对应项:它仅返回联合中不同元素的数量,而不是成员本身。

必需参数

numkeys

后面的键的数量。

key [key ...]

一个或多个设置键进行联合。

可选参数

APPROX

返回近似基数而不是精确计数。

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> SUNION key1 key2
1) "a"
2) "c"
3) "d"
4) "b"
5) "e"
redis> SUNIONCARD 2 key1 key2
(integer) 5
redis> SUNIONCARD 2 key1 key2 LIMIT 3
(integer) 3

详细说明

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

当提供可选的 LIMIT 参数(默认为 0,表示无限制)时,如果联合基数在计算过程中达到 limit,该命令将停止并返回 limit 作为基数。这确保了限制低于实际联合基数的查询的显着加速。 LIMIT 可在精确模式和近似模式下工作。

近似基数

默认情况下,SUNIONCARD 返回精确的联合基数。使用 APPROX 选项,它会在内部使用 HyperLog日志 来估计基数,标准误差约为 0.81%,而无需实现完整联合。这对于非常大的联合非常有用,其中计算精确计数在时间和内存方面都很昂贵。

Redis Software 与 Redis Cloud 兼容性

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

返回值

RESP2

整数回复:结果联合中的元素数量。

RESP3

整数回复:结果联合中的元素数量。

参见

SUNION | SUNIONSTORE

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