HyperLogLog 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
HyperLogLog 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
HyperLogLog 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
HyperLogLog 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
HyperLogLog 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2014-10-08

软件简介

该项目是 Go 语言对 HyperLogLog 和 HyperLogLog++ 算法的实现。

HyperLogLog paper: http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf

HyperLogLog++ paper: http://research.google.com/pubs/pub40671.html

算法比较

对于小基数,HyperLogLog ++算法的错误要低得多。这是因为它对少量数据集使用不同的数据表示形式。使用该库生成的数据显示出N <10000的差:

N <10000

HyperLogLog ++还具有偏差校正功能,可帮助抵消原始HyperLogLog算法中的估计误差。再次使用此库生成的数据,可以在此处看到此更正:

N <80000

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/07/17 22:06

HyperLogLog简介

  (1)HyperLogLog简介      在Redis 在 2.8.9 版本才添加了 HyperLogLog,HyperLogLog算法是用于基数统计的算法,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数。HyperLogLog适用于大数据量的统计,因为成本相对来说是更低的,最多也就占用12kb内存      业务场景,HyperLogLog常用于大数据量的统计,比如页面访问量统计或者用户访问量统计      举个例子,假如要统计一个页...

0
0
2019/07/18 11:54

Redis HyperLogLog

关于 Redis HyperLogLog 在说明 HyperLogLog 之前,我们需要先了解一个概念:基数统计。维基百科中的解释是: cardinality of a set is a measure of the “number of elements“ of the set 它的意思是:一个集合(注意:这里集合的含义是 Object 的聚合,可以包含重复元素)中不重复元素的个数。例如集合 {1,2,3,1,2},它有5个元素,但它的基数/Distinct 数为3。 Redis 最常用的数据结构有字符串、列表、字典、集合和有序集合...

0
0
发表了博客
2019/10/16 15:48

Redis之HyperLogLog

需求: 如果我们要统计网站页面的UV (每天一个用户的多次访问算一次) 我们可以想到的是使用set来保存访问用户的ip,key = date + 任意关键字 ,values = 用户的ip sadd "2019-10-16 ips" 192.168.1.1 依次类推更换后面的ip,因为set的value值是唯一的所以可以达到一天内用户的ip唯一 带来的问题,使用字符串来储存每个 IPv4 地址最多需要耗费 15 字节 下表给出了使用集合记录不同数量的独立 IP 时,需要耗费的内存数量: 独立 ...

0
0
发表了博客
2019/01/10 12:07

Redis之HyperLogLog

基于HyperLogLog算法 : 极小空间完成独立数量统计,本质还是字符串 127.0.0.1:6379> pfadd 2019:uuid:id 'u1' 'u2' 'u3' (integer) 1 127.0.0.1:6379> type 2019:uuid:id string PFADD key element [element ...] 将除了第一个参数以外的参数存储到以第一个参数为变量名的HyperLogLog结构中。这个命令的一个副作用是它可能会更改这个HyperLogLog的内部来反映在每添加一个唯一的对象时估计的基数(集合的基数)。如果一个HyperLo...

0
0
发表了博客
2018/11/21 16:52

Redis HyperLogLog命令,phpredis如何执行HyperLogLog命令

  redis在redis2.8.9版本中加入了Redis HyperLogLog结构;   Redis HyperLogLog是用来做基数统计的算法,HyperLogLog的好处是:当输入元素的数量或者体积非常非常大的时候,计算基数所需的空间总是固定的,且很小的。   在redis中,每个HyperLogLog键只需花费12Kb的内存,就可以计算2^64个不同元素的基数;这和计算基数是,元素越多耗费内存就越多的集合形成鲜明对比。   Redis HyperLogLog的缺点是:只会根据输入元素本...

0
0
发表于软件架构专区
2018/05/23 15:32

Redis基数----HyperLogLog

基数-------HyperLogLog 基数是一种算法。举个例子,一本英文著作由数百万个单词组成,你的内存却不足以存储它们,那么我们先分析一下业务。英文单词本身是有限的,在 这本书的几百万个单词中有许多重复单词,扣去重复的单词,这本书中也就是几千到一万多个单词而已,那么内存就足够存储它们了。比如数字集合{1, 2,5,7,9,,1,5,9}的基数集合为{1,2,5,7,9}那么基数(不重复元素)就是5,基数的作用是评估大约需要准备...

0
0
发表于开发技能专区
2018/08/12 12:31

神奇的HyperLogLog算法

原文链接:http://rainybowe.com/blog/2017/07/13/%E7%A5%9E%E5%A5%87%E7%9A%84HyperLogLog%E7%AE%97%E6%B3%95/index.html?utm_source=tuicool&utm_medium=referral 神奇的HyperLogLog算法 基数计数基本概念 基数计数(cardinality counting)通常用来统计一个集合中不重复的元素个数,例如统计某个网站的UV,或者用户搜索网站的关键词数量。数据分析、网络监控及数据库优化等领域都会涉及到基数计数的需求。 要实现基数计数,最简...

0
0
发表了博客
2019/09/12 13:39

redis HyperLogLog的使用

一、概念 1、redis在2.8.9版本添加了HyperLogLog结构。 2、redis HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是:在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定的、并且使很小的。 3、在redis里面,每个HyperLogLog键只需要花费12kb内存,就可以计算接近2^64个不同元素的基数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。 4、但是,因为HyperLogLog只会根据输入元素来计算基数...

0
0
发表于AI & 大数据专区
2018/09/07 10:02

redis的HyperLogLog实战

## 序 本文主要研究一下redis的HyperLogLog的用场 ## 相关命令 ### pfadd 每添加一个元素的复杂度为O(1) ``` 127.0.0.1:6379> pfadd uv0907 uid1 uid2 uid3 (integer) 1 ``` - 添加元素到HyperLogLog中,如果内部有变动返回1,没有返回0 ### pfcount 作用域单个HyperLogLog时,复杂度为O(1),作用于多个HyperLogLog时,复杂度为O(N) ``` 127.0.0.1:6379> pfcount uv0907 (integer) 3 ``` - 返回该HyperLogLog的近似基数,如果是...

0
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
3 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部