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

相关推荐
夜影风37 分钟前
Redis集群创建时出现“Node xxx.xxx is not empty”问题处理
数据库·redis·缓存
utf8mb4安全女神1 小时前
【Redis数据库】哨兵集群/redis集群/安装配置/主从复制/数据持久化操作/数据结构/安全限制/PHP redis/
linux·服务器·数据结构·数据库·redis·缓存
lzz的编码时刻1 小时前
Liquibase 入门实战教程
数据库·运维开发
Zk.Sun1 小时前
Linux设置触屏双击距离容差
linux·运维·数据库
山峰哥2 小时前
数据库工程:Explain执行计划对比实战指南‌
数据库·sql·oracle·深度优先·宽度优先
crisps_ww3 小时前
自媒体运营分析-BI可视化仪表盘制作
数据库
xto_coo3 小时前
锡膏存储方法有哪些?
缓存
Geek-Chow3 小时前
微服务认证与授权:01 — 概念
java·前端·数据库
烤代码的吐司君3 小时前
Redis IO 多路复用原理与引入原因深度解析
数据库·redis·php
韶博雅4 小时前
oracle密码策略检查
数据库·oracle