(用来做基数统计的算法,节省内存)
什么是基数?
比如数据集{1,3,5,7,5,7,8} 那么基数为 1 3 5 7 8 基数(不重复元素)为5
命令:PFADD
语法:PFADD key element [element...]
功能:将任意数量的元素添加到指定的 HyperLogLog里面
作为整个命令的副作用,HyperLogLog内部可能会被更新,以便反映一个不同的唯一元素估计数量
返回值:整数回复 如果HyperLogoLog的内部储存被修改了,那么返回1 否则返回0
127.0.0.1:6379> pfadd keywords php python mysql linux redis monodb (integer) 1 127.0.0.1:6379> pfadd keywords oracle (integer) 1 127.0.0.1:6379> pfadd keywords oracle (integer) 0
命令:PFCOUNT
语法:PFCOUNT key [key ...]
功能:当PFCOUNT命令作用于单个键时,返回储存在给定键的HyperLogLog的近似基数
如果键不存在 返回0
当PFCOUNT命令作用于多个键时,返回所有给定HyperLogLog的并集的近似基数,这个
近似基数是通过将所有给定HyperLogLog合并至一个临时HyperLogLog来计算得出的
返回值:整数回复,给定HyperLogLog包含的唯一元素近似数量
127.0.0.1:6379> pfcount keywords (integer) 7 127.0.0.1:6379> pfadd keywords php7 mysql8 redis6 (integer) 1 127.0.0.1:6379> pfcount keywords (integer) 10
命令:PFMERGE
语法:PFMERGE destkey sourcekey [sourcekey...]
功能:将多个HyperLogLog合并 merge 为一个HyperLogLog
合并后的HyperLogLog的基数接近与所有输入HyperLogLog的
可见集合observed set的并集
返回值:字符串回复 返回ok
127.0.0.1:6379> pfmerge destkey keywords keywords2 OK 127.0.0.1:6379> pfcount destkey (integer) 10