小工具知识网

当前位置: 首页 > 行业知识 > [面试] 如何保证Redis和MySQL数据一致性?

行业知识

[面试] 如何保证Redis和MySQL数据一致性?

2026-10-30 02:08:00 来源:互联网转载

为什么要在Redis存数据

Redis 用来实现应用和数据库之间读操作的缓存层,主要目的是减少数据 库 IO,还可以提升数据的 IO 性能。

因为Redis基于内存, 查询效率比MySQL快很多, 所以有限查询Redis中的数据,如果Redis没有就查询数据库然后同步到Redis

出现的问题

数据需要同时保存或者发生变化时, 在Redis和MySQL中都要修改, 但是修改总要有个先后顺序,所以会有数据一致性问题.

解决方案

  1. 先跟新数据后更新缓存

  2. 缺点: 如果先更新数据库,再更新缓存,如果缓存更新失败,就会导致数据库和 Redis 中的数 据不一致。

2. 先删除缓存后更新数据库

  1. 缺点: 极端情况下删除Redis和更新数据库不是原子性操作的, 这个期间有其他线程访问还是有数据不一致的问题

  2. 最终一致性

  3. 基于RocketMQ的可靠性消息通信来实现

  4. 使用canal的方式同步MySQL和Redis的数据, 实时监控MySQL的binlog日志把更新后的数据同步到Redis

上一篇:小红书PC端使用秘籍,轻松上手,开启社交电商新篇章!

下一篇:怎么买代理服务器?