1 前言
在平时开发中我们经常会用到对某个同样的数据进行去重,在mysql中,使用distinct count计算不重复个数,在redis中,使用其提供的hash,set,bitmaps等数据结构来处理。
但是当数据量较大时,导致其占用的空间越来越大,对于非常大的数据并不适用,所以可以通过降低一定的精度来平衡存储空间,这就出现了Redis的HyperLogLog。
在redis里面,每个HyperLogLog只需要花费12kb的内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存越多的集合形成鲜明的对比
2 操作命令
将所有元素添加到指定HyperLogLog中。如果执行命令后HLL估计的近似基数发生变化,则返回1,否则返回0.