Hyperloglog 基数统计

什么是基数: 不重复的元素

A{1,3,5,7,8,7}

基数=5 (1,3,5,7,8)

可以统计一下网站的访问量,但是不包括一个人多次访问只算一次的情况。

传统来说可以使用其他数据模型保存id-count

但是这个方法会造成id保存资源的浪费,所以不可取

而Hyperloglog就只存储count,所以他内存很少

但是Hyperloglog有错误率,挺低的

FLUSHALL 开始。

一些样例

1
2
3
4
5
6
7
8
9
10
11
12
# 增加数量
PFadd mykey a b c d e f g h i j
# 计数
PFCOUNT mykey # output : 10
# mykey2 增加数量
PFADD mykey2 i j z x c v b n m
# 增加数量
pfcount mykey2 # output : 9
# 合并 pfmerge destkey sourcekey sourcekey ....
pfmerge mykey3 mykey mykey2
# 计数
pfcount mykey3 # ouput : 15

比较适合于一些允许容错的计数任务

如果不允许容错,就是用其他的数据结构……………..