一、基本介绍
·元素添加
PFADD:向 HyperLogLog 结构中添加一个或多个元素,内部通过哈希桶与概率算法记录元素特征。
·基数估计
PFCOUNT:返回一个或多个 HyperLogLog 键的基数估计值,支持直接统计多个键的并集基数。
·合并操作
PFMERGE:将多个 HyperLogLog 键合并为一个,取并集后存入目标键,适用于多日 UV 累计、多来源去重等跨时间/跨维度的基数聚合场景。
更多信息请参见 Valkey 产品文档:HyperLogLog 命令组。
二、命令支持概览
·基础命令:pfadd、pfcount、pfmerge 在 Redis 2.8 标准架构及4.0、5.0、6.2、7.0版本、Valkey 8.0、9.0的标准架构与集群架构中均完全支持。
·跨 Slot 限制:集群架构下,pfcount、pfmerge 不支持跨 Slot 操作;pfadd 不存在跨 Slot 访问场景。
三、命令兼容性矩阵
HyperLogLog 族命令在各版本与架构下的支持情况如下表所示(✓ 表示支持,✗ 表示不支持,— 表示该命令不存在跨 Slot 访问场景)。
| 命令 | Valkey 9.0标准架构 | Valkey 9.0集群架构 | Redis 7.0/Valkey 8.0标准架构 | Redis 7.0/Valkey 8.0集群架构 | Redis 6.2标准架构 | Redis 6.2集群架构 | Redis 5.0标准架构 | Redis 5.0集群架构 | Redis 4.0标准架构 | Redis 4.0集群架构 | Redis 2.8标准架构 | 集群架构跨 Slot 支持 |
| pfadd | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| pfcount | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |
| pfmerge | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ |