缓存双写一致性问题

发布时间:2026/9/12 20:59:08
缓存双写一致性问题 当我们更新数据库的时候需要保持数据可的数据和缓存中的数据保持一致在业务背景的不同所对应的就有两种解决方式1.必须保证强一致性的业务解决方案i延迟双删先去删除缓存再去更新数据库等待一段时间后再去删除缓存删除两次缓存的原因由于我们的线程是交替执行的有可能再缓存中还存在数据库已经更新之前的脏数据所以我们要再删一遍缓存。延时删除的原因数据库一般是主从模式读写分离的所以我们要等待一会让主节点把数据同步到从节点之后再进行删除当然在延迟双删的过程中依然不能保证数据的强一致性ii采用读写锁进行控制由于我们存入缓存中的数据一般都是读多写少我们可以采用Redisson中的读写锁来进行完成读锁只允许多个线程进行读操作无法进行写操作写锁则是只能让一个线程做写操作这样我们就实现的数据的强一致性2.可以允许延迟一致的业务在更改数据库之后通过MQ发送异步请求完成缓存的更新