一亿用户每天的签到状态怎样存储?
先自己想一想,再看参考要点
参考要点
- 用位图:每天一个键 active:{日期},offset 为用户的连续序号,签到时 SETBIT 为 1,1 亿用户每天 12.5 MB、一年约 4.6 GB
- BITCOUNT 统计当天的人数,BITOP 求多天的交集和并集
- 也可以每人每月一个键 sign:{用户 ID}:{年月},便于查一个人的签到,但大量小键的开销大,每人每年一个键时 1 亿用户约 15 GB
- 用户 ID 稀疏时先转换为连续的序号
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。