原文链接:Redis新数据类型(2)-HyperLogLog – 编程屋
1 前言
在平时开发中我们经常会用到对某个同样的数据进行去重,在mysql中,使用distinct count计算不重复个数,在redis中,使用其提供的hash,set,bitmaps等数据结构来处理。
但是当数据量较大时,导致其占用的空间越来越大,对于非常大的数据并不适用,所以可以通过降低一定的精度来平衡存储空间,这就出现了Redis的HyperLogLog。
在redis里面,每个HyperLogLog只需要花费12kb的内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存越多的集合形成鲜明的对比
2 操作命令
pfadd<key><element>[element] 添加指定元素到HyperLogLog中
将所有元素添加到指定HyperLogLog中。如果执行命令后HLL估计的近似基数发生变化,则返回1,否则返回0.
pfcount<key> 计算HLL的近似基数,统计基数的数量
pfmerge<destkey><sourcekey> 讲一个或多个HLL合并后的结果存储到另外一个HLL
以上只是部分内容,为了维护方便,本文已迁移到新地址:Redis新数据类型(2)-HyperLogLog – 编程屋