高级数据类型-HyperLogLog

统计独立UV

  • 原始方案:set

   存储每个用户的id(字符串)

  • 改进方案:Bitmaps

   存储每个用户状态(bit)

  • 全新的方案:Hyperloglog

基数

  • 基数是数据集去重后元素个数
  • HyperLogLog 是用来做基数统计的,运用了LogLog的算法

 

 

HyperLogLog类型的基本操作

 添加数据

pfadd key element [element ...]

 统计数据

pfcount key [key ...]

 合并数据

pfmerge destkey sourcekey [sourcekey...]

Tips 22:

  • redis 应用于独立信息统计

相关说明

  • 用于进行基数统计,不是集合,不保存数据,只记录数量而不是具体数据 核心是基数估算算法,最终数值存在一定误差
  • 误差范围:基数估计的结果是一个带有 0.81% 标准错误的近似值
  • 耗空间极小,每个hyperloglog key占用了12K的内存用于标记基数
  • pfadd命令不是一次性分配12K内存使用,会随着基数的增加内存逐渐增大 
  • Pfmerge命令合并后占用的存储空间为12K,无论合并之前数据量多少

posted on 2021-09-07 18:07  zhangchaoya  阅读(47)  评论(0编辑  收藏  举报

导航