思路:点赞、取消点赞 ——> Redis ——> (每两个小时)存到数据库(MysqL),所以就相当于每次查询或者存储都需要先经过Redis,而查询的目的是为了判断用户的点赞状态(已点赞or未点赞),并不是传递给前端。
- 被点赞作品的id、
- 点赞人员的id、
- 点赞状态(已点赞or未点赞)
采用的Redis存储结构为Hash
,因为 Hash
里的数据都是存在一个键里,可以通过这个键很方便的把所有的点赞数据都取出。这个键里面的数据还可以存成键值对的形式,方便存入点赞人、被点赞人和点赞状态
点赞作品的id和点赞状态数据需要先存入Redis,而对于数据库中的创建时间和更新时间,只在存储的时候有用,所以也就在Redis存到数据库时
new Date() + 2个小时
即可。
设置点赞状态,1为点赞,0为未点赞;同时采用 被点赞作品id ::
点赞人员的id的存储形式作为key,值为点赞状态。
参考:点赞模块设计 - Redis缓存 + 定时写入数据库实现高性能点赞功能 (juejin.cn)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。