1、先更新数据库再删缓存
A做查询,B做更新
前提是缓存刚好失效
1、A去查询,B去更新同时进行
2、A去缓存没查到,然后去读库,读到旧值,B进行了更新然后删除缓存,然后A把读到的旧值放到缓存
3、这时候缓存里就存的跟数据库就不一样儿了,这就是脏数据
2、先删除缓存再更新数据库
A做查询,B做更新
前提是缓存刚好失效
1、A去查询,B去更新同时进行
2、A去缓存没查到,然后B删除缓存,A去读库读到旧值,放入缓存;B去更新了数据库
3、这个时候缓存里的值还是老值,库里是新值,生成脏数据。
3、缓存延迟双删策略
A做查询,B做更新
1、B先删除缓存,然后更新数据库,短暂停留,然后再删除缓存。
2、这样可以防止脏数据