首页/数据/数据库速查/HyperLogLog 基数估算(PFADD/PFCOUNT/PFMERGE)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

HyperLogLog 基数估算(PFADD/PFCOUNT/PFMERGE)

用约 12KB 内存估算集合基数(标准误差 0.81%):PFADD 添加、PFCOUNT 估算、PFMERGE 合并;适合 UV 等大基数近似统计。

数据库速查数据更新于 2026-10-12

UV 统计

UV 统计
PFADD uv:20261012 u1 u2 u3
PFADD uv:20261012 u3 u4
PFCOUNT uv:20261012                 # 约 4
PFMERGE uv:week uv:20261005 uv:20261006
PFCOUNT uv:week                     # 周去重 UV(估算)
PFCOUNT uv:20261005 uv:20261006     # 多键直算(内部临时合并,开销更大)
内存每键上限约 12KB(小基数用稀疏编码更省)
误差标准误差约 0.81%
语义只估算基数,不能判断某元素是否存在
合并PFMERGE 是幂等并集
报表里 UV 和精确值对不上别慌:HLL 天生近似;要求精确就用 Set/Bitmap,但内存会涨。

易错点

  • 拿 PFCOUNT 当精确值对账:是估算值,可能有 ±1% 级别偏差
  • 高频 PFCOUNT 多键直算:内部合并较慢,先在报表任务里 PFMERGE 汇总

数据来源与参考

  • Redis 官方文档: HyperLogLog
  • Redis 官方文档: PFCOUNT

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌