方法:
- 先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不⼀致
-
先删除Redis缓存数据,再更新Mysql ,再次查询的时候在将数据添加到缓存中,这种⽅案能解决 1⽅案的问题,但是在⾼并发下性能较低,⽽且仍然会出现数据不⼀致的问题,⽐如线程1 删除了Redis缓存数据,正在更新Mysql,此时另外⼀个查询再查询,那么就会把Mysql中⽼数据⼜查到Redis中
-
延时双删 ,步骤是:先删除Redis缓存数据,再更新Mysql,延迟⼏百毫秒再删除Redis缓存数据,这样就算在更新Mysql时,有其他线程读了Mysql,把⽼数据读到了Redis中,那么也会被删除掉,从⽽把数据保持⼀致