公众号:架构师与哈苏
关注公众号进入it交流群! 公众号:架构师与哈苏 不定时都会推送一些实用的干货。。。

最初级的缓存不一致问题以及解决方案

问题: 先修改数据库,再删除缓存,如果删除缓存失败了,那么会导致数据库中是新数据,缓存中是旧数据,数据出现不一致

解决思路:

先删除缓存:再修改数据库,如果删除缓存成功了,如果修改数据库失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致因为读的时候缓存没有,则读数据库中旧数据,然后更新到缓存中。

比较复杂的数据不一致问题分析

数据发生了变更,先删除了缓存,然后要去修改数据库,此时还没修改,一个请求过来,去读缓存,发现缓存空了,去查询数据库,查到了修改钱的旧数据,放到了缓存中
数据变更的程序完成了数据库修改
完了,数据库和缓存中的数据不一样了。。。

解决方案:把写请求和读请求都放到本地队列中,开一个线程去执行,读请求每隔200ms去循环获取redis数据。

posted on 2021-11-17 10:53  公众号/架构师与哈苏  阅读(40)  评论(0编辑  收藏  举报