教程 > redis教程 > 阅读:26

redis hyperloglog——迹忆客-ag捕鱼王app官网

redis hyperloglog


redis 在 2.8.9 版本添加了 hyperloglog 结构。

hyperloglog是一种概率数据结构,用于对唯一事物进行计数(从技术上讲,这是指估计集合的基数)。通常,对唯一项目进行计数需要使用与要计数的项目数量成比例的内存量,因为您需要记住过去已经检索的元素,以避免多次对其进行计数。但是,有一组算法会以内存换取精度:我们最终会得到带有标准误差的估计量,在redis实现中,该误差小于1%。该算法的神奇之处在于,我们不再需要使用与所计数项目数量成正比的内存量,而是可以使用恒定数量的内存!在最坏的情况下为12k字节,如果我们的hyperloglog(从现在开始将它们称为hll)看到的元素很少,则用到的内存将更少。

什么是基数?

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

示例

以下示例演示了 hyperloglog 的工作过程:

redis 127.0.0.1:6379> pfadd jiyikey "redis"
1) (integer) 1
redis 127.0.0.1:6379> pfadd jiyikey "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> pfadd jiyikey "mysql"
1) (integer) 1
redis 127.0.0.1:6379> pfcount jiyikey
(integer) 3

redis hyperloglog 命令


下表列出了 redis hyperloglog 的基本命令:

序号 命令 说明
1 添加指定元素到 hyperloglog 中
2 返回给定 hyperloglog 的基数估算值
3 将多个 hyperloglog 合并为一个 hyperloglog

查看笔记

扫码一下
查看教程更方便
网站地图