1. 先更新数据库,在更新缓存
- 会有异常
- 更新完Mysql,发生异常,redis还没有更新,导致redis的是旧数据,下次读取缓存读的是脏数据
2.先删除缓存,在更新数据库
1.
- 缓存已经删了,mysql还在更新中。。。
- 由于Mysql还在更新中,会读取到Mysql的旧值,回写到redis
- 低并发:写入旧值 高并发:缓存击穿
解决方案
延迟双删策略
带来的问题
-
删除要多久
-
mysql主从架构会怎么样
-
这种同步淘汰策略,吞吐量降低怎么办
3.先更新数据库,在删除缓存
可能读到数据库旧值
4.先更新缓存,在更新数据库
不行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)