如何保证redis与数据库一致性

举报
负债程序猿 发表于 2022/02/18 22:22:01 2022/02/18
【摘要】 前言 莫得前言 问题描述: 这是我们在用redis做缓存是避免不了的一个问题,正常情况下我们是更新完数据库马上更新缓存,但是如果某一天,你吃着雪糕磕着瓜子,缓存服务崩了,你啷个办,这时候数据库已...

前言

莫得前言


问题描述:

这是我们在用redis做缓存是避免不了的一个问题,正常情况下我们是更新完数据库马上更新缓存,但是如果某一天,你吃着雪糕磕着瓜子,缓存服务崩了,你啷个办,这时候数据库已经更新完了,别想着让redis回滚,redis没有回滚机制,哦豁看来只有删库跑路;

方案:

除了删库跑路,我们可以采用一些更理性的方法,比如增加重试机制,删除失败就重试个四五次,如果四五次重试也失败,那我们分情况:

如果对数据实时性要求比较高,我们可以搞一个报警系统,重试次数用完后触发报警,报警怎么实现??方案很多,比如给管理员发送邮件,告知项目管理员你服务崩了,准备跑路吧(如果想让用户体验好一点,还可以帮管理员写好离职报告,定好机票),当然,在发送邮件之前,我们可以先给客户返回个通知,比如系统异常,网站数据可能更新不及时,建议稍后再进行操作,总之别让用户懵逼;这里的邮件通知只是一个方法,还有很多其他通知方式;

如果系统对数据实时性要求不高,可以把这个更新缓存的操作写入rabbitMQ,然后设置成手动确认,等缓存服务起来后再进行更新也是ok的;

方案千千万,适合自己的才是最好的!

如有雷同,请举报我,ok我话讲完

文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:huangjie.blog.csdn.net/article/details/108259143

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。