后端redis缓存逻辑问题?
各位后端大佬,最近接触redis。业务场景是这样的,一个最简单的博客系统,我现在需要记录 文章的点赞总数 以及用户是否点过赞。之前是用MySQL去做的很简单。现在我想用redis去做有以下一些疑惑:假如A用户点完赞,点赞信息存在Redis。A用户刷新页面重新请求页面,后端从MySQL进行查询数据,但是那时候A用户的redis数据还没同步到MySQL(一天一同步,还是说多少时间最好),我是不是要循环MySQL查询出来的数据列表的同时再去Redis判断用户对当前循环的文章id是否点过赞?并且将MySQL的文章总数加上Redis记录的点赞总数再返回给前端吗?我不知道这样设计是不是对的。
回复
1个回答

test
2024-07-11
对 redis 的理解完全错误
redis 充当什么角色?缓存!
A用户刷新页面重新请求页面,后端从MySQL进行查询数据,但是那时候A用户的redis数据还没同步到MySQL(一天一同步,还是说多少时间最好)—— 完全错误,不存在『先 redis ,然后 redis 同步到 mysql 』这种荒唐的事情。
正确的做法,cache aside
关于 cache aside ,具体看:https://zhuanlan.zhihu.com/p/...
你要读取数据:
- 就先去 redis 看看有没有
- 有,就返回
- 没有,就去 mysql 读取,并将结果写入 redis,返回
你要写数据:
- 先写入 mysql
- 然后删除 redis 中的数据
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容