什么是基数?
比如A:{1,3,5,7,8,7}; B:{1,3,5,7,8}’
基数(不重复的元素)=5,可以接受误差!
简介
官方早在Redis2.8.9的时候就更新出了Hyperloglog数据结构。
Redis Hyperloglog 基数统计的算法!
比如:网页的UV(一个人访问同一个网站多次,但是还是算作一个人!)
传统的方式:set保存用户的id,然后可以统计set中元素的数量作为判断标准!
这种方式保存大量的id,就会比较麻烦,占用大量的空间!
而Hyperloglog的优点:
在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。它的错误率只有0.8%,统计UV任务,完全可以忽略不计!
- PFADD命令
- PFCOUNT命令
- PFMERGE命令