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

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

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

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

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

相关推荐
r***93485 小时前
PostgreSQL 向量扩展插件pgvector安装和使用
数据库·postgresql
蒲公英源码6 小时前
AI智慧教育平台架构设计与实现方案,基于Jdk17+SpringBoot3AI智慧教育平台
java·人工智能·mysql·jdk
z***67776 小时前
Spring Boot 实战:轻松实现文件上传与下载功能
java·数据库·spring boot
赵师的工作日6 小时前
MongoDB-从0到1-安全管理
数据库·安全·mongodb
Jinkxs6 小时前
MongoDB - MongoDB处理大文件:GridFS的使用场景与教程
数据库·mongodb
i***27956 小时前
Oracle分页sql
数据库·sql·oracle
铃汐留6 小时前
MongoDB设置密码并使用MongoDB Compass连接
数据库·mongodb
i***17186 小时前
mysql如何发现慢查询sql
数据库·sql·mysql
v***55346 小时前
MySQL 中如何进行 SQL 调优
android·sql·mysql
阿宁又菜又爱玩6 小时前
MySQL基础学习
数据库·学习·mysql