redis学习之 redis hyperloglog

Redis 2.8.9引入了HyperLogLog数据结构,用于高效计算大规模数据集的基数,仅需12KB内存即可处理约2^64个唯一元素,提供了一种空间效率极高的近似计数方法。虽然无法存储原始元素,但能进行基数估算,适用于不需要精确值的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis HyperLogLog :

reids在2.8.9版本添加了hyperloglog结构。它是用来做基数统计的算法,优点是,在输入元素的数量或者体积非常大时,计算技术所需要的空间总是固定的、并且是很小的。

在redis里面,每个hyperloglog键只需要花费12KB内存,就可以计算接近2的64次方个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。

但是,因为HyperLogLog只会根据输入元素来计算基数,而不会存储元素本身,所以HyperLogLog不能像集合那样,返回输入的各个元素。

基数的定义:

比如数据集{1,3,5,7,5,7,8},这个数据集的基数集为{1,3,5,7,8},基数(不重复元素)为5。基数估计就是在误差可接受的范围内,快速计算基数。

实例:HyperLogLog的工作过程:

redis 127.0.0.1:6379> PFADD runoobkey "redis"

1) (integer) 1

redis 127.0.0.1:6379> PFADD runoobkey "mongodb"

1) (integer) 1

redis 127.0.0.1:6379> PFADD runoobkey "mysql"

1) (integer) 1

redis 127.0.0.1:6379> PFCOUNT runoobkey

(integer) 3

redis hyperloglog命令:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值