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

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

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

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

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

相关推荐
用户6279947182628 分钟前
南大通用GBase 8c逻辑复制槽功能实践示例
数据库
努力奋斗的小杨20 分钟前
计科数据库第二次上机操作--实验二 表的简单查询
数据库·笔记·mysql·计科·上机实验
大刘讲IT30 分钟前
构建实时、融合的湖仓一体数据分析平台:基于 Delta Lake 与 Apache Iceberg
开发语言·python·sql·mysql·数据挖掘·数据分析·json
阿里云云原生42 分钟前
MySQL 开发的智能助手:通义灵码在 IntelliJ IDEA 中的应用
mysql
科韵小栈43 分钟前
MySQL 安全与权限管理:数据库的城堡守卫系统
数据库·mysql
Y第五个季节1 小时前
Redis 持久化
数据库·redis·mybatis
zeijiershuai1 小时前
MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型,表结构-查询SQL、修改SQL、删除SQL
sql·mysql
爱笑的Sunday1 小时前
【LeetCode 题解】数据库:1321.餐馆营业额变化增长
数据库·sql·leetcode
程序员老周6661 小时前
从MySQL快速上手大数据Hive
大数据·数据库·hive·hadoop·mysql·mapreduce·数据工程师
不辉放弃1 小时前
第三章:SQL 高级功能与性能优化
服务器·前端·sql·mysql