你的位置:首页 > 软件开发 > 数据库 > 优云漫谈redis在运维数据分析中的去重统计方式

优云漫谈redis在运维数据分析中的去重统计方式

发布时间:2016-07-27 16:00:06
今天,我和大家分享下redis在运维数据分析中的去重统计方式。 为了避免混淆,本文中对于redis的数据结构做如下约定: SET:saddkey memberZSET:zaddkeyscorememberHYPERLOGLOG:pfaddkeyelementSTRING: ...
优云漫谈redis在运维数据分析中的去重统计方式

优点:使用简单,统计精确。

缺点:无法达成实时统计的功能,要一分钟统计一次的话需要使用expire命令设置一个很短的回收时间,单一维度时占用空间过大,信息聚合成本过大,有几个维度就需要几倍的内存空间,3个以上复合维度时基本不需要考虑此方案。

适用场景:需要统计的去重内容的基数非常小的情况下可以考虑,在优云mobile中,对于用户基数较小的影响设备数的计算采用了此种方式。

 

2.基于zset的去重统计

 

传统的基于跳表/B树的统计方式,key为维度信息,score为时间,member为设备id等原子信息,通过zcount可以拿取所有的成员数量。

优点:插入和统计都是o(log(N))的,可以精确统计从现在开始到某个时间点的用户,可以保留原子数据。

 

优云漫谈redis在运维数据分析中的去重统计方式 

优点:对于200万用户不超过万分之一误算率的统计,只需要8M左右redis内存即可完成统计,万分之一的误算率是在插入的不同设备数达200万次时才拥有的误算率,在这之前的误算率是从0开始线性增长的,在大多数情况下这个误算率应该是可以容忍的。

缺点:布隆过滤器的统计结果无法聚合

 

适用场景:对于一些需要实时显示的内容并且维度较少的内容,可以采用此数据结构,在优云mobile中,总览页面的活跃设备数采用了此方案来实时显示今日活跃设备数。

 

作者简介:胡翀,广通软件旗下--优云软件打杂初级java开发工程师一枚,现任优云大数据平台开发工程师,负责统计平台的数据的分析和存储。


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:优云漫谈redis在运维数据分析中的去重统计方式

关键词:Redis

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录