缓存与数据库双写不一致

redis  取数据不正确 redis如何解决数据不一致_缓存

一开始解决办法是每次存数据后将缓存删掉,后面线程读取数据库是又将数据读到缓存中
但是又会出现问题

redis  取数据不正确 redis如何解决数据不一致_数据_02


redis  取数据不正确 redis如何解决数据不一致_缓存_03


5、延时双删,在写入数据库后,等待一定时间后再将缓存数据删除,在下次查询数据库将更新的缓存数据删除,就可以避免数据库与缓存不一致现象

**严重影响性能**

问题:但是会影响性能用户体验

redis  取数据不正确 redis如何解决数据不一致_redis_04


分布式锁解决:一般用于不能忍受不一致带来的问题,如库存数据问题分布式锁解决缓存与数据库的不一致性问题

写的时候加写锁

读的时候加读锁

redis  取数据不正确 redis如何解决数据不一致_数据库_05

总结:

  1. 延时双删,第二次删除的时候设置适合的时间等待后面数据刷新后在进行删除
  2. 设置过期时间(一般会采用这样的方法)