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

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

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

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

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

相关推荐
tzhou644526 小时前
MySQL备份与恢复
数据库·mysql·adb
CC.GG6 小时前
【C++】二叉搜索树
java·c++·redis
一过菜只因6 小时前
MySql Jdbc
android·数据库·mysql
思成不止于此6 小时前
MySQL 查询实战(三):排序与综合练习
数据库·笔记·学习·mysql
茅坑的小石头7 小时前
数据库表设计,概念模型、逻辑模型、物理模型的区别,目标、主要内容、所处阶段、面向人群,数据库无关性
数据库
tebukaopu1487 小时前
mysql数据备份还原
数据库·mysql
zyxqyy&∞7 小时前
mysql代码小练-2
数据库·mysql
JIngJaneIL7 小时前
基于Java非遗传承文化管理系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
+VX:Fegn08957 小时前
计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
poemyang7 小时前
像Git一样管理数据:深入解析数据库并发控制MVCC的实现
mysql·事务·mvcc