Redis-HyperLogLog
定义与使用
HyperLogLog
是Redis的高级数据结构,它在做基数统计的时候非常有用,每个HyperLogLog的键可以计算接近2^64
不同元素的基数,而大小只需要12KB
。
HyperLogLog
目前只支持3个命令,PFADD
、PFCOUNT
、PFMERGE
。底层实验主要基于伯努利估计,分桶存储,误差控制
PFADD
对比向布隆过滤器中添加元素。即用于将一个或者多个元素添加到布隆过滤器中。布隆过滤器是一种概率型数据结构,用于高效的判断一个元素是否属于一个集合,但有一定的误判率,优点是占用空间小和查询速度快。
HyperLogLog和布隆过滤器都是基于概率的数据结构,利用了哈西函数和位操作
HyperLogLog侧重于基数估计,布隆过滤器侧重于元素的存在性检查
- 时间复杂度:
O(1)
- 使用方法
PFADD key element [element.....]
其中,key
是布隆过滤器的键名,element
是要添加到布隆过滤器中的元素,可以是一个或者多个
PFCOUNT
对于单个key,返回指定key的近似基数。
对于多个key,返回的是这些key并集对的近似基数。
PFCOUNT key1 key2 key3
PFMERGE
该命令用于将多个HyperLogLog结构合并到一个新的HyperLogLog结构中。
PFMERGE destKey sourceKey [sourceKey.....]
原理参考
原文地址:https://blog.csdn.net/qq_40420192/article/details/145271571
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!