Redis源码中hyperloglog结构的实现原理是啥( 三 )



简单来看,其实 HyperLogLog 的基数统计就使用了这样的思想,通过二进制中 Redis源码中hyperloglog结构的实现原理是啥
出现的第一个位置来估算整体的数量。首先把这批元素通过 hash 函数处理成 Redis源码中hyperloglog结构的实现原理是啥
序列,然后把这批 Redis源码中hyperloglog结构的实现原理是啥
序列都放入 Redis源码中hyperloglog结构的实现原理是啥
个桶,然后通过计算这个桶里面所有 Redis源码中hyperloglog结构的实现原理是啥
序列的 Redis源码中hyperloglog结构的实现原理是啥
的最大值,就可以预估出整体的数量。i.e. Redis源码中hyperloglog结构的实现原理是啥
整体的数量预估是 Redis源码中hyperloglog结构的实现原理是啥

Redis源码中hyperloglog结构的实现原理是啥
个桶:计算出 Redis源码中hyperloglog结构的实现原理是啥
预估不重复的元素个数是 Redis源码中hyperloglog结构的实现原理是啥
那么如果只有 Redis源码中hyperloglog结构的实现原理是啥
个桶,其实是会存在一定的偏差的。为了解决这个问题,一种想法就是重复以上操作,从 hash 函数开始处理成 Redis源码中hyperloglog结构的实现原理是啥
序列,每次都把这批 Redis源码中hyperloglog结构的实现原理是啥
序列放入 Redis源码中hyperloglog结构的实现原理是啥
个桶,每次获得一个 Redis源码中hyperloglog结构的实现原理是啥
值。总共操作 Redis源码中hyperloglog结构的实现原理是啥
次,第 Redis源码中hyperloglog结构的实现原理是啥
次操作得到的值记为 Redis源码中hyperloglog结构的实现原理是啥
于是就可以对 Redis源码中hyperloglog结构的实现原理是啥
进行均值处理,可以使用以下方法:
算术平均数: Redis源码中hyperloglog结构的实现原理是啥
几何平均数: Redis源码中hyperloglog结构的实现原理是啥
调和平均数: Redis源码中hyperloglog结构的实现原理是啥
中位数: Redis源码中hyperloglog结构的实现原理是啥
从而可以预估整体的数量为 Redis源码中hyperloglog结构的实现原理是啥

如果按照以上的步骤进行操作,就是需要重复进行多次操作,在足够多的情况下,其实是没有必要那么操作的。HyperLogLog 也是用了多个桶,但是用了一个截断的技巧。对于一个 Redis源码中hyperloglog结构的实现原理是啥
序列 Redis源码中hyperloglog结构的实现原理是啥
HyperLogLog 从某个位置 Redis源码中hyperloglog结构的实现原理是啥
开始,低位 Redis源码中hyperloglog结构的实现原理是啥
用于决定桶的序号,也就是第几个桶。桶的个数就是 Redis源码中hyperloglog结构的实现原理是啥


推荐阅读