MySQL和redis如何保证数据的一致性

1、先更新MySQL,再更新redis,如果更新redis失败,可能仍然不一致
2、先删除redis缓存数据,再更新MySQL,再次查询的时候讲数据添加到缓存仲,这种方案解决1方案的问题,但是在高并发下性能比较低,而且仍然会出现数据不一致的问题,比如线程1删除了redis的数据,正在更新MySQL,此时另外一个查询再查询,那么会吧MySQL仲老数据又查到redis中。
3、延时双删,步骤是:先删除redis缓存数据,再更新MySQL,延时几百毫秒再删除redis缓存数据,这样就算在更新MySQL时,其他线程读了MySQL,把老数据读取到redis中,那么也会删除掉,从而把数据保持一致。

你可能感兴趣的:(数据库,mysql)