和DB数据一致性问题,也是经常被问到的,只要你建立写了redis,如果面试官想问一些场景问题,都会扯到数据一致性问题,今天我们就解读一下这个问题,按照以下思路解读
有哪些缓存模式
都有哪些优点和缺点
如何解决数据不一致...三.如何解决数据不一致
基本上使用Cache-Aside Pattern模式可以解决大部分场景,但是我们其实还可以优化,达到弱一致性,以及最终一致性的效果
延时双删策略
删除缓存重试机制
读取binlog...因此我们就可以在删除的时候重复删除,当我们删除失败的时候,我们可以把删除的key放入到消息队列中,然后消费消息队列的key,直到删除操作成功,
取binlog异步删除缓存,使用消息队列虽然可以,但是他会浸入我们的业务逻辑...,
有人就可能问,如果是主从数据库呢,主备的操作可能有一定的延迟,数据可能还没有到从库,读请求就到达了从库,从而获取到了旧值,因此我们可以使用从库进行binlog采集,从而达到删除缓存的效果,如下图...binlog异步删除
如果是一主多从,采集所有的从库,可以收到一条消息,删除一次,也可以收到最后一台机器的binlog,再进行删除