Redis源码剖析–基数统计 基数统计 算法思路 伯努利过程 基数统计 hyperloglog实现 数据结构 添加元素 计算基数 合并hyperloglog键 hyperloglog小结 Update 2016-12-9 Redis中hyperloglog是用来做基数统计的,其优点是:在输入元素的数量或者体积非常非常大的时候,计算基数
1.bitmap位图 1.1 bitmap位图的概念 首先来看一个例子,字符串big, 字母b的ASCII码为98,转换成二进制为 01100010字母i的ASCII码为105,转换成二进制为 01101001字母g的ASCII码为103,转换成二进制为 01100111 如果在Redis中,设置一个key,其值为big,此时可以get到big这个值,也可以获取到 big的A
HyperLogLog 什么是 HyperLogLog HyperLogLog 是基于 HyperLogLog 算法的一种数据结构,该算法可以在极小空间完成独立数量统计。 在本质上还是字符串类型。 重要 API 命令 含义 pfadd key element1 [element2...] 向HyperLogLog中添加元素 pfcount key1 [key2...] 计算Hyp
项目在统计UV/PV时用到了Druid的Hyper hyperunique算法,书上介绍这种算法求出的UV/PV存在一定误差,因此需要了解下误差来自哪里。 实现去重功能,最简单的就是使用set记录集合本身,缺点与前面Bloom Filter差不多,显而易见,需要大量内存空间。HyperLogLog为解决这个问题而生。 另外redis也