石家庄做网站优化,门户网站内容管理建设方案,建立一个app需要多少钱,外包活一般是怎么接的其实如果使用缓存#xff0c;就会出现缓存和数据库的不一致问题#xff0c;关键在于我们可以接受不一致的时间是多少#xff0c;根据不同的需求采取不同的实现方案。
第一种#xff1a;先更新数据库后更新缓存
做法简单#xff0c;但是并发写情况下#xff0c;会出现数…其实如果使用缓存就会出现缓存和数据库的不一致问题关键在于我们可以接受不一致的时间是多少根据不同的需求采取不同的实现方案。
第一种先更新数据库后更新缓存
做法简单但是并发写情况下会出现数据的不一致问题具体不一致的时间长短取决于过期时间的长短
第二种:先删除缓存后更新数据库
并发读写情况下如果刚删除了缓存还未执行DB操作的情况下读线程已经读取旧数据更新缓存的值那么数据库还是会出现不一致的问题时间同样取决于过期时间长短
第三种:先更新数据库后删除缓存
存在问题1、更新数据库和删除缓存直接这段时间读到的数据是不一致的。2、如果删除缓存失败那么也会存在一段时间的不一致时间同样取决于过期时间的长短
第四种:基于第二种先删除缓存再更新数据库为防止第二种情况的发送使用保底策略延迟一段时间再删除缓存
存在问题:1.如果删除缓存失败那么也会存在一段时间的不一致时间同样取决于过期时间的长短
2.多次删除缓存给redis带来一定的压力
第五种:基于第三种先更新数据库再使用本地缓存或者消息队列异步删除缓存。