📄️ 缓存与数据库一致性?
缓存与数据库一致性是指在使用缓存的情况下,保证缓存中的数据与数据库中的数据保持一致的问题。先写缓存再写数据库、先写数据库再写缓存、先删除缓存再写数据库这三种在实际工作中不建议使用,存在比较大的数据不一致隐患。可以根据业务场景选择下述缓存一致性方案:缓存延时双闪、先写数据库再删缓存以及 Binlog 异步更新缓存。
📄️ 写DB再删缓存如何解决一致性?
先写 DB 再删除缓存"是一种常用的缓存一致性解决方案,也被称为“写回策略”或“Write-Through 策略。这种策略的优势在于它保证了数据库和缓存之间的一致性。如果应用程序写入数据库并删除缓存,下一个读取操作将从数据库中获取最新数据,从而避免了数据不一致的情况。
📄️ 写DB再删除缓存,结果Redis宕机?
为了避免因执行 Redis 操作而引起的性能问题对 MySQL 数据库造成事务长时间不提交等影响,我们会将 Redis 的执行操作置于数据库事务之外。因为数据库事务已经提交了,所以删除 Redis 缓存操作即使失败,也不能让接口操作返回失败。
📄️ Binlog和MQ如何解决缓存一致性?
Binlog(Binary Log)是 MySQL 数据库的一种日志文件,它记录了所有对数据库的修改操作,例如插入、更新、删除等。MQ(消息队列)是一种用于在应用程序之间传递消息的通信机制。使用 Binlog 配合 MQ 可以实现缓存和数据库之间的一致性解决方案。