如何保证redis与数据库一致性
【摘要】
前言
莫得前言
问题描述:
这是我们在用redis做缓存是避免不了的一个问题,正常情况下我们是更新完数据库马上更新缓存,但是如果某一天,你吃着雪糕磕着瓜子,缓存服务崩了,你啷个办,这时候数据库已...
前言
莫得前言
问题描述:
这是我们在用redis做缓存是避免不了的一个问题,正常情况下我们是更新完数据库马上更新缓存,但是如果某一天,你吃着雪糕磕着瓜子,缓存服务崩了,你啷个办,这时候数据库已经更新完了,别想着让redis回滚,redis没有回滚机制,哦豁看来只有删库跑路;
方案:
除了删库跑路,我们可以采用一些更理性的方法,比如增加重试机制,删除失败就重试个四五次,如果四五次重试也失败,那我们分情况:
如果对数据实时性要求比较高,我们可以搞一个报警系统,重试次数用完后触发报警,报警怎么实现??方案很多,比如给管理员发送邮件,告知项目管理员你服务崩了,准备跑路吧(如果想让用户体验好一点,还可以帮管理员写好离职报告,定好机票),当然,在发送邮件之前,我们可以先给客户返回个通知,比如系统异常,网站数据可能更新不及时,建议稍后再进行操作,总之别让用户懵逼;这里的邮件通知只是一个方法,还有很多其他通知方式;
如果系统对数据实时性要求不高,可以把这个更新缓存的操作写入rabbitMQ,然后设置成手动确认,等缓存服务起来后再进行更新也是ok的;
方案千千万,适合自己的才是最好的!
如有雷同,请举报我,ok我话讲完
文章来源: huangjie.blog.csdn.net,作者:负债程序猿,版权归原作者所有,如需转载,请联系作者。
原文链接:huangjie.blog.csdn.net/article/details/108259143
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)