点赞功能的一种实现

简述

最近开发“新闻发布系统”,想要优化原有的点赞功能,所以考虑Redis实现一种缓存点赞方法。

这里直接贴出一个链接吧,https://blog.csdn.net/mrhanzhou5273/article/details/113395797

我觉得这里写的很不错,感兴趣的可以参考一下

怎么做

我大致描述他是怎么做的

  • 通过Redis对点赞缓存,利用hash结构,将用户id、目标id、目标类型作为hashflied,值为0/1,代表未点赞/点赞
  • 这里使用策略模式优化了ifelse的判断处理操作
  • 最后利用定时任务实现Redis的持久化

看完还是能学到东西的

问题

如果你看完了原文,应该想一想这样做会不会有什么问题?

如果你看不出什么问题,要反思了

我提几个问题?

  • 这里的Redis是不是会和数据库出现数据不一致的情况?
  • 看完原文上面的答案是:会出现不一致的情况,那么从数据库查到的数据是不准确的怎么办?
  • Redis的数据在未持久化前丢失了怎么办?

应该有很多问题可以提的

那是不是说他的方案不可行,我想不是的

我们想一想日常使用场景,点赞是实时准确的吗?不,它不是,我们都能感受到它会在经过一段时间后有个较大的变化,这也许就可能是Redis持久化后的效果

所以说嘛,我觉得这样是可行的,但使用时还是要注意

建议

  • 数据丢失保障
  • 防止Redis数据集中在几个key
  • Redis使用常规问题。。。