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

redis 2022年12月27日 570

缓存延迟双删:先删除缓存,在更新数据库,确保数据库事务提交成功,然后休眠一段时间在删除缓存。我们都知道第三种情况是因为网络卡顿导致数据库更新失败,当网络恢复正常后,我们在执行更新数据库操作,然后再删除缓存,那么出现数据不一致的情况也就是在休眠的这短暂的时间内。

面试官可能会问删除缓存失败了,又该怎么办?

需要删除失败的key存入消息队列中,采用异步的方式来进行删除,如果删除失败的次数已经超过了最大次数,发送警告邮件,需要人工介入解决。

异步更新缓存(基于订阅binlog的同步机制)

MySQL binlog增量订阅消费+消息队列+增量数据更新到redis

读Redis:热数据基本都在Redis
写MySQL:增删改都是操作MySQL
更新Redis数据:MySQ的数据操作binlog,来更新到Redis


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

PHP学习网:站内收集的部分资源来源于网络,若侵犯了您的合法权益,请联系我们删除!
分享到:
赞(0)

文章评论

您需要之后才可以评论

PHP学习网

PHP学习网