redis处理用户签到问题

现在有一个需求,需要记录用户每天的签到,这个时间可能会持续好几年,还要统计活跃用户等数据,用户体量比较大

现在想的是,用户签到数据直接存 key/value,这样一年内,每个用户就有365条数据,在用户体量很大的情况下,内存消耗不起

有没有比较好的解决办法?

回复
阅读 2.1k
2 个回答

用redis的bitmap数据结构,以用户和年作为key,以每一天为偏移量,不计算key的长度一年只要365bit的空间,也就是365bit/8=46byte

用户体量有多大?

你这个冷数据为啥要放在redis里面,用mysql分库分表就可以了,这种场景特别适合按年拆分,没有几个用户会去看我的历史签到记录,比如去年11月11日我是几点几分签到,这种场景真的太少了

对于mysql来说冷数据存储最划算,硬盘便宜,分表以后也没啥性能损失

如果真的有强烈的查询历史数据需求,那就放mongodb

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏