redis:存储与计算:日活,留存,老用户等统计数据



一.实战之前,先介绍一个概念bitmap

这个bitmap有啥用?

看这副图片,假如更精简的话,只有2个颜色,黄色和透明,1代表黄色,0代表没有颜色,是不是,只要你找到哪个点,看一下是1还是0就知道颜色了呢


二.bitmap在统计中的应用

下面,我将讲解如何用bitmap原理来存储日活数据

思路:把每一天,当做一个图,谁访问了,就在哪个点上,设置1


  1. 记录日活

需求:记录每天,某个userid 为 22的用户访问了某个网页,网页名为 pagehelloword

这样通过pagehelloword::Ymd 可以记录每一天的数据图


下面我计算了 22这个userid在 20160502 访问了pagehelloword

setbit    pagehelloword::20160502     22  1


我们可以多生成几个测试数据

setbit    pagehelloword::20160502      23 1

setbit    pagehelloword::20160502     24  1

setbit    pagehelloword::20160502     25  1

setbit    pagehelloword::20160502      26  1


那么次数,我们假如想看一下,今天日活多少了,就是有多少人访问了

怎么得到这些日活数据呢?

bitcount 命令可以计算某个bitmap有多少的1

bitcount pagehelloword::20160502  

(integer) 5


非常好,我们有5个人访问了,数据准确吗,我们查看一下,之前我们确实记录了5个数据,yes,数据非常准



2.记录留存,留存率

日期走到了5月3号,那么这一天假如有这些userid访问了pagehelloword,我们同样记录一下


setbit    pagehelloword::20160503    25  1

setbit    pagehelloword::20160503    22  1

setbit    pagehelloword::20160503    24  1

setbit    pagehelloword::20160503    26  1

setbit    pagehelloword::20160503    27  1

setbit    pagehelloword::20160503    28  1

setbit    pagehelloword::20160503    29  1


我们同样可以上面的方法,计算一天5月3号的日活

bitcount pagehelloword::20160503

(integer) 7

日活为7,比昨天提高了ye

那么留存有多少呢,就是昨天访问的,今天又访问了的人,占比为多少呢


bitop 可以对多个bitmap进行与或运算

我们取得 5月2号,和5月3号访问人的交集,即重复访问的人


BITOP AND pagehelloword::20160502and20160503 pagehelloword::20160502 pagehelloword::20160503


我们用 pagehelloword::20160502and20160503 记录了 2号和3号的并集


现在我们查看一下,有多少人第二天又重复访问了,同样是bitcount命令


bitcount pagehelloword::20160502and20160503

(integer) 4


结果是 4个人

那么我们就可以计算出 次日留存 即为4

次日留存率为 4/5*100% = 80% 


3.统计次日老用户比例

还是上面的表格,我们得到老用户为 4 今天的所有用户为7

比例为 4/7*100% 


4.统计周活,月活跃用户

BITOP or 并集

我们这里简化一下,统计连续2天的活跃用户

BITOP or pagehelloword::20160502or20160503 pagehelloword::20160502 pagehelloword::20160503

----

pagehelloword::20160502or20160503就是 5月2号,3号连续2天的总的活跃用户

我们用 bitcount pagehelloword::20160502or20160503

(integer) 8

得出活跃用户为8人

如果周活,就是连续7天,月活就是本月的所有数据图的并集

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值