Redis Key的设计

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后判断可得出当月连续签到天数

相关推荐
q_19132846954 小时前
基于RuoYi框架+Mysql的汽车进销存后台管理系统
数据库·vue.js·spring boot·mysql·汽车·个人开发·若依
祈祷苍天赐我java之术4 小时前
Redis 的原子性操作
java·redis
wuyunhang1234564 小时前
MySQL----锁
数据库·mysql
兜兜风d'4 小时前
Redis中渐进式命令scan详解与使用
redis
悟能不能悟4 小时前
springboot在DTO使用service,怎么写
java·数据库·spring boot
达瓦里氏1234 小时前
重排反应是什么?从分子变化到四大关键特征解析
数据库·学习·化学
电话交换机IPPBX-3CX4 小时前
Grafana图表与电话交换机的结合
数据库·mysql·grafana·ip pbx·电话交换机
__XYZ4 小时前
RedisTemplate 实现分布式锁
java·spring boot·redis·分布式·junit
IT 小阿姨(数据库)4 小时前
PostgreSQL REST API 介绍
运维·数据库·sql·postgresql·centos