Redis和mysql如何保持数据一致?

1.先更新Mysql,再更新Redis,如果更新Redis失败,可能仍然不一致

  1. 先删除Redis缓存数据,再更新Mysql,再次查询的时候在将数据添加到缓存中,这种方案能解决1方案的问题,但是在高并发

下性能较低,而且仍然会出现数据不一致的问题,比如线程1删除了Redis 缓存数据,正在更新Mysql,此时另外一个查询再查询,那么就会把Mysql中老数据又查到Redis中

3.延时双删,步骤是:先删除Redis缓存数据,再更新Mysql,延迟几百毫秒再删除Redis缓存数据,这样就算在更新Mysq时,有其他线程读了Mysal,把老数据读到了Redis中,那么也会被删除掉,从而把数据保持一致

相关推荐
宠友信息29 分钟前
多端数据互通场景下Spring Boot仿小红书源码结构设计
数据库·spring boot·redis·缓存·架构
风曦Kisaki31 分钟前
#Linux数据库管理Day06:主从同步与MaxScale读写分离
linux·运维·数据库
影寂ldy1 小时前
C# try-catch 异常处理全套笔记
服务器·数据库·c#
长不胖的路人甲1 小时前
Redis 缓存的数据持久化方案讲解
数据库·redis·缓存
长不胖的路人甲1 小时前
Redis 单线程为什么速度很快
数据库·redis·缓存
韩楚风1 小时前
【参天引擎】Cantian 服务端框架全景解析:进程架构、模块组成与交互关系
数据库·mysql·架构·cantian
Listen·Rain1 小时前
数据库流式查询
java·数据库
彦为君2 小时前
算法思维与经典智力题
java·前端·redis·算法
雨辰AI2 小时前
生产级实战:人大金仓 V9 标准化运维手册(日常巡检 + 监控告警 + 应急处置)
java·运维·数据库·后端