点赞功能的一种实现
简述
最近开发“新闻发布系统”,想要优化原有的点赞功能,所以考虑Redis
实现一种缓存点赞方法。
这里直接贴出一个链接吧,https://blog.csdn.net/mrhanzhou5273/article/details/113395797
我觉得这里写的很不错,感兴趣的可以参考一下
怎么做
我大致描述他是怎么做的
- 通过
Redis
对点赞缓存,利用hash
结构,将用户id
、目标id
、目标类型作为hash
的flied
,值为0/1
,代表未点赞/点赞 - 这里使用策略模式优化了
ifelse
的判断处理操作 - 最后利用定时任务实现
Redis
的持久化
看完还是能学到东西的
问题
如果你看完了原文,应该想一想这样做会不会有什么问题?
如果你看不出什么问题,要反思了
我提几个问题?
- 这里的
Redis
是不是会和数据库出现数据不一致的情况? - 看完原文上面的答案是:会出现不一致的情况,那么从数据库查到的数据是不准确的怎么办?
- 若
Redis
的数据在未持久化前丢失了怎么办? - 等
应该有很多问题可以提的
那是不是说他的方案不可行,我想不是的
我们想一想日常使用场景,点赞是实时准确的吗?不,它不是,我们都能感受到它会在经过一段时间后有个较大的变化,这也许就可能是Redis
持久化后的效果
所以说嘛,我觉得这样是可行的,但使用时还是要注意
建议
- 数据丢失保障
- 防止
Redis
数据集中在几个key
上 Redis
使用常规问题。。。