千家信息网

位图法统计活跃用户

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Setbit 的实际应用场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃每周评出: 有奖活跃用户: 连续7天活动每月评,等等...思路:Userid dt activ
千家信息网最后更新 2026年10月31日位图法统计活跃用户

Setbit 的实际应用

场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃

每周评出: 有奖活跃用户: 连续7天活动
每月评,等等...

思路:

Userid dt active
1 2013-07-27 1
1 2013-0726 1

如果是放在表中, 1:表急剧增大,2:要用group ,sum运算,计算较慢

用: 位图法 bit-map
Log0721: '011001...............0'

......
log0726 : '011001...............0'
Log0727 : '0110000.............1'

1: 记录用户登陆:
每天按日期生成一个位图, 用户登陆后,把user_id位上的bit值置为1

2: 把1周的位图 and 计算,
位上为1的,即是连续登陆的用户

redis 127.0.0.1:6379> setbit mon 100000000 0 (一亿用户星期一的初始状态,都是0)
(integer) 0
redis 127.0.0.1:6379> setbit mon 3 1 (3号用户周一登录一次,计为1)
(integer) 0
redis 127.0.0.1:6379> setbit mon 5 1(5号用户周一登录一次,计为1)
(integer) 0
redis 127.0.0.1:6379> setbit mon 7 1(7号用户周一登录一次,计为1)
(integer) 0
redis 127.0.0.1:6379> setbit thur 100000000 0
(integer) 0
redis 127.0.0.1:6379> setbit thur 3 1
(integer) 0
redis 127.0.0.1:6379> setbit thur 5 1
(integer) 0
redis 127.0.0.1:6379> setbit thur 8 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 100000000 0
(integer) 0
redis 127.0.0.1:6379> setbit wen 3 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 4 1
(integer) 0
redis 127.0.0.1:6379> setbit wen 6 1
(integer) 0
redis 127.0.0.1:6379> bitop and res mon feb wen
(integer) 12500001

如上例,优点:
1: 节约空间, 1亿人每天的登陆情况,用1亿bit,约1200WByte,约10M 的字符就能表示
2: 计算方便

用户 登陆 位图 登录 优点 场景 如上 字符 实际 思路 情况 日期 星期 状态 空间 应用 活动 生成 运算 统计 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 互联网科技公司经营范围 科技股互联网 美国互联网科技巨头监管 壕鑫互联网络科技 科技大学互联网专业好不好 互联网科技公司的市场部门 博兴的互联网电子科技公司 承德科技产业互联网发展 保险科技服务互联网营销体系 工业互联网山东科技大学 怎样加入科技互联网 江苏苏星互联网科技有限公司 互联网与数字科技关系 广州梦谷互联网科技有限公司领导 中国科技和美国互联网 科技和互联网行业的特点 玉溪新华互联网科技怎么选 现代互联网科技公司 六子台科技互联网展会 云信互联网科技有限公司 朗新科技与工业互联网 世界互联网领先科技成果 互联网巨头投资的硬核科技 互联网汽车科技小镇 互联网科技革命什么开始 电子科技大学互联网创业大赛 长沙互联网科技 科技信息时代互联网发展 互联网科技品牌
0