春去秋来你好:
这个功能的实现方式是多样的。最核心的出发点和思考点是:你有多大的用户量(需要预估出来),如果用户量不是很大,比如说少于 10万个,那么,MySQL 和 Redis 处理下都是非常简单的。我这里给出一个简单的使用 Redis 的方案:
将所有的用户签到信息保存到一个 Redis Hash 对象中,Hash 中的每一个 field value 记录一个用户的签到信息,显然,field 中需要有用户的 id 标识,value 需要有用户的签到记录。那么,可以是这样的数据:{
"user_1": {
"2020-09-01": true,
"2020-09-02": true
},
"user_2": {
"2020-09-01": true,
"2020-09-02": true
}
}
那么,保存了这些数据,用代码处理下就可以了(这个逻辑就很简单了)。你当然在保存 value 的时候不使用 Map,而是使用 List 等等记录下来。不过最终肯定是将 Java 对象序列化到 Redis 中。
我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!