首页/数据/Redis 进阶速查/HyperLogLog 基数统计
数据结构与选型42 条

HyperLogLog 基数统计

用约 12KB 固定内存估算集合基数,标准误差约 0.81%,适合 UV、去重计数等场景;PFADD 写入、PFCOUNT 读取、PFMERGE 合并。

Redis 进阶速查数据更新于 2026-10-12
内存每键约 12KB(16384 个 6bit 寄存器)
误差标准误差 0.81%
命令PFADD / PFCOUNT / PFMERGE

示例

示例
redis-cli PFADD uv:20261012 user100 user101 user102
redis-cli PFCOUNT uv:20261012
redis-cli PFMERGE uv:week uv:20261011 uv:20261012
redis-cli PFCOUNT uv:week
PFCOUNT 对单个键是近似 O(1),多键合并计数开销更高且会更新内部缓存;高频大合并建议先 PFMERGE 再计数。

易错点

  • HyperLogLog 只能给出基数,无法取回具体成员,需要明细请另建 Set 或落地明细表
  • 同一键反复 PFCOUNT 结果可能微小波动(近似算法特性),对账场景要预留误差区间

数据来源与参考

  • Redis 官方文档:HyperLogLog 数据类型
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌