继续探讨点赞功能模块设计
前几天我们设计了点赞模块的模块,大致思路就是:
用户点赞,首先缓存到redis中进行保存,redis中既要保存点赞总数,还要保存点赞记录。然后定时执行redis数据到数据库中。
但是,今天在资讯类项目的时候,遇到了一个问题。那就是用户点赞完之后,用户重新刷新界面,那这个界面点赞按钮应该高亮才可以。怎么实现?
方案设计
我们要保留住用户点赞行为,也要保留住该用户对某个文章进行了点赞。如果这个用户已经对这个文章点赞过,那再进入这个界面的时候,应该点赞高亮才对。所以,我们在用户点赞完成之后,需要把对这个文章的点赞记录到redis中。然后,用户点击文章详情的时候,首先从redis中进行获取,如果有就高亮,如果没有,就查询数据库点赞记录。当然,我们需要给这个文章的这个点赞状态进行过期时间限制。
key: authorId : articleId value: 1or 0
这样的话,用户在点击文章详情的话,我们可以从redis中过滤出来,这个用户有没有对这个文章进行点赞过。如果为1说明点赞,高亮。如果为0说明没有点赞。
今天就对昨天的点赞功能遗漏的问题进行了探讨,如果大家还有什么问题,可以留言分享。