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
整数回复:结果联合中的元素数量。
参见
相关主题
资料来源:Redis 官方 SUNIONCARD 文档;中文内容参考 Redis 文档许可。