redis统计用户日活量_redis如何做亿级用户登录日活统计?(内含资料)

本文探讨了如何使用Redis的Bitmap和HyperLogLog数据结构来统计亿级用户的日活跃量。Bitmap提供精确的用户状态记录,适合小规模数据,而HyperLogLog则在牺牲部分精度的情况下,极大地节省了内存,适用于大规模数据统计。通过案例分析了两种方案的优缺点,以及在实际应用中的注意事项。
摘要由CSDN通过智能技术生成

原文首发于公众号【豆仔gogo】,转载务必保留相关相关链接及文章全部图文。redis如何做亿级用户登录日活统计?(内含资料)​mp.weixin.qq.com

面试真题:如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量?

方案一:使用string(排除)

如何用合适的数据类型来存储1亿用户的数据,用普通的字符串来存储肯定不行。经过查看一个最简单的kv(key为aaa,value为1)的内存占用,发现为48byte。

假设每个用户每天登陆需要占据1对KV的话,那一亿就是(48*100000000)/1024/1024/1024=4.47G。这还是一天的量。

方案二:bitmap

1、bitmap介绍

在redis 2.2.0版本之后,新增了一个位图数据,其实它不是一种数据结构。实际上它就是一个一个字符串结构(涉及单个bitmap可存储最大值问题),只不过value是一个二进制数据,每一位只能是0或者1。redis单独对bitmap提供了一套命令。可以对任意一位进行设置和读取。

主要命令有:

相关语法为:SETBIT key offset value

GETBIT key offset

BITCOUNT key [start] [end]

BITOP operation destkey key [key …]

注意事项:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值