当前位置:网站首页>保证数据库和缓存的一致性

保证数据库和缓存的一致性

2022-06-22 20:47:00 秃头侠客

方案1:同步删除

核心流程:

先更新数据库数据

然后删除缓存数据

存在的问题:

1)删除缓存失败存在脏数据

2)难以收拢所有更新数据库入口
直接在数据库中修改,缓存不会改变


方案2:延迟双删

核心流程:

删除缓存数据

更新数据库数据

等待一小段时间

再次删除缓存数据

存在的问题:

1)延迟时间难以确认

到底是延迟一秒或者是几秒,这个其实很难确认,你总不能延迟几分钟吧,因为你如果延迟几分钟,那这几分钟可能就存在脏数据了,所以这个时间很难确定。

2)无法绝对保障数据的一致性


方案3:异步监听binlog删除 + 重试

核心流程:

更新数据库

监听binlog删除缓存

缓存删除失败则通过MQ不断重试,直至删除成功
整体流程图如下:
在这里插入图片描述
参考如何保障缓存和数据库的一致性(超详细案例)数据库缓存一致性解决方案

原网站

版权声明
本文为[秃头侠客]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44620773/article/details/125400118