思路:点赞、取消点赞 ——> Redis ——> (每两个小时)存到数据库(MySQL),所以就相当于每次查询或者存储都需要先经过Redis,而查询的目的是为了判断用户的点赞状态(已点赞or未点赞),并不是传递给前端。
Redis数据库中需要有的字段:
- 被点赞作品的id、
- 点赞人员的id、
- 点赞状态(已点赞or未点赞)
采用的Redis存储结构为Hash
,因为 Hash
里的数据都是存在一个键里,可以通过这个键很方便的把所有的点赞数据都取出。这个键里面的数据还可以存成键值对的形式,方便存入点赞人、被点赞人和点赞状态
点赞作品的id和点赞状态数据需要先存入Redis,而对于数据库中的创建时间和更新时间,只在存储的时候有用,所以也就在Redis存到数据库时
new Date() + 2个小时
即可。
设置点赞状态,1为点赞,0为未点赞;同时采用 被点赞作品id ::
点赞人员的id的存储形式作为key,值为点赞状态。