Java --- redis7之大数据统计之Bitmap

文章探讨了在大数据统计背景下,如何利用Bitmap解决日活统计和签到领京豆的问题。首先提出使用MySQL实现签到表,但随着用户量增长,数据量会急剧增加。然后,文章介绍了使用Redis的Bitmaps功能,以更高效的方式存储和统计用户的签到情况,只需1个bit位即可表示一天的签到状态,大大节省了存储空间。最后提到了布隆过滤器作为案例实现的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、大数据统计之Bitmap

1.1、面试题 

1.2、京东签到领取京豆


一、大数据统计之Bitmap

1.1、面试题 

1、日活统计

2、签到打卡

3、最近一周的活跃用户等 

1.2、京东签到领取京豆

 

 一个月的签到天数,连续签到数

方案1:使用MySQL来实现(小项目)

签到表

CREATE TABLE user_sign(
keyid BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
user_key VARCHAR(200), #京东用户
sign_data DATETIME, #签到日期
sign_count INT #连续签到天数
)

 方法可行,但很难实际使用。当签到用户的体量小可以,一旦用户数过大,数据量也会暴增。

解决办法:

1、一条签到记录对应一条记录,会占据越来越大的空间。

2、一个月31天,int类型是32位,那么一个int类型就相当一个月。

3、一条数据直接存储一个月的签到记录,不在存储一天的签到记录。

 方案2:基于redis的Bitmaps实现日历签到(大项目)

 签到统计时,用户一天的签到用1个bit位就能表示

案例实现参考布隆过滤器!!!