Redis-HyperLogLog

xiaoxiao2021-02-28  64

HyperLogLog

一.什么是HyperLogLog

HyperLogLog并不是一种新的数据结构(实际类型为字符串类型),而是一种基数算法,通过HyperLogLog可以利用极小的内存空间完成独立总数的统计,数据集可以是ip、Email、ID等。

二. 命令

2.1 添加pfadd key element[element…]

Pfadd命令用于向HyperLogLog添加元素,如果成功返回1.

例如:

10.3.34.101:6378> pfadd pfkey3 pfv1 pfv4pfv5 pfv1

(integer) 1

 

2.2 计算独立总数pfcount key[key…]

Pfcount命令会计算一个或多个HyperLogLog的独立总数。

例如:

10.3.34.101:6378> pfadd pfkey3 pfv1 pfv4pfv5 pfv1

(integer) 1

10.3.34.101:6378> pfcount pfkey3

(integer) 3

 

2.3 合并 pfmerge destkey sourcekey[sourcekey…]

Pfmerge可以求出多个HyperLogLog的并集,并赋给destkey。

例如:

10.3.34.101:6378> pfadd pfkey1 pfv1 pfv2pfv3

(integer) 1

10.3.34.101:6378> pfadd pfkey2 pfv1 pfv4pfv5

10.3.34.101:6378> pfmerge pfm1 pfkey1pfkey2

OK

10.3.34.101:6378> pfcount pfm1

(integer) 5

三. HyperLogLog的优缺点

优点:

HyperLogLog的内存占用非常下,下面是它和集合类型的内存占用量对比,分别在集合set和HyoerLogLog中存储100万数据

 

缺点:

存在一定的误差率,Redis官方给出的误差率是0.81%

转载请注明原文地址: https://www.6miu.com/read-73151.html

最新回复(0)