1.用户签到记录
记录一个用户年度签到记录,Key格式:
user:checking:daily:userID:年份
一个key存储用户一年的签到记录
(1)方便使用bitcount统计年度累计签到天数。
(2)每年之后将redis中的签到数据持久化入DB
2.用户补签记录(bitmap)
因为产品设计用户只能补签当月的日期,所以这里使用月份维度的rediskey,一个用户每月补签记录,key格式:
user:checkins:retro:userID:月份
一个key存储用户当月的补签记录
(1)既能记录当月补签日期,又能方便的计算当月补签次数
(2)每个月后将Redis中的补签数据持久化入DB
3.如何计算当月连续签到天数?
当月每日签到bitmap|(逻辑或)当日补签bitmap=当月签到bitmap
逐位遍历当月签到bitmap后判断可得出当月连续签到天数