如何解决数据不一致
一,有哪些缓存模式
缓存模式常见的有三种,Cache-Aside Pattern(旁路缓存模式),(Read-Through/Write-Through)读写穿透,Write behind...cache provider)
读写异步模式,实现比较复杂,有数据不一致问题,但是性能好
Cache-Aside Pattern(旁路缓存模式)的一些问题,首先我们为什么要删除缓存而不是更新缓存,那肯定是有原因的其实他有三点不好的原因...首先删除了缓存,线程B来时读操作,然后发现缓存没有数据,就会读取数据库,然后更新缓存,此时线程A,又过来更新了数据库,就会导致缓存和数据库不一致了,
此时可能面试官就会问,那先更新数据库,再删除缓存,不会有问题吗,...因此我们就可以在删除的时候重复删除,当我们删除失败的时候,我们可以把删除的key放入到消息队列中,然后消费消息队列的key,直到删除操作成功,
取binlog异步删除缓存,使用消息队列虽然可以,但是他会浸入我们的业务逻辑...binlog异步删除
如果是一主多从,采集所有的从库,可以收到一条消息,删除一次,也可以收到最后一台机器的binlog,再进行删除