Redis主从同步与故障切换,有哪些坑?
Redis的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务。
不过,在实际使用主从机制的时候,我们很容易踩到一些坑。这节课,我就向你介绍3个坑,分别是主从数据不一致、读到过期数据,以及配置项设置得不合理从而导致服务挂掉。
一旦踩到这些坑,业务应用不仅会读到错误数据,而且很可能会导致Redis无法正常使用,我们必须要全面地掌握这些坑的成因,提前准备一套规避方案。不过,即使不小心掉进了陷阱里,也不要担心,我还会给你介绍相应的解决方案。
好了,话不多说,下面我们先来看看第一个坑:主从数据不一致。
主从数据不一致
主从数据不一致,就是指客户端从从库中读取到的值和主库中的最新值并不一致。
举个例子,假设主从库之前保存的用户年龄值是19,但是主库接收到了修改命令,已经把这个数据更新为20了,但是,从库中的值仍然是19。那么,如果客户端从从库中读取用户年龄值,就会读到旧值。
那为啥会出现这个坑呢?其实这是因为主从库间的命令复制是异步进行的。
具体来说,在主从库命令传播阶段,主库收到新的写命令后,会发送给从库。但是,主库并不会等到从库实际执行完命令后,再把结果返回给客户端,而是主库自己在本地执行完命令后,就会向客户端返回结果了。如果从库还没有执行主库同步过来的命令,主从库间的数据就不一致了。
那在什么情况下,从库会滞后执行同步命令呢?其实,这里主要有两个原因。
一方面ÿ
Redis主从同步与故障切换,有哪些坑?相关推荐
- 32 | Redis主从同步与故障切换,有哪些坑?
文章目录 Redis核心技术与实战 实践篇 32 | Redis主从同步与故障切换,有哪些坑? 主从数据不一致 读取过期数据 不合理配置项导致的服务挂掉 Redis核心技术与实战 实践篇 32 | R ...
- Day758.Redis主从同步与故障切换的坑 -Redis 核心技术与实战
Redis主从同步与故障切换的坑 Redis 的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务. 接下来是对应会出现的3个坑,分别 ...
- 10丨 Redis主从同步与故障切换,有哪些坑
1. 主从数据不一致 主从数据不一致,就是指客户端从从库中读取到的值和主库中的最新值并不一致.举个例子,假设主从库之前保存的用户年龄值是 19,但是主库接收到了修改命令,已经把这个数据更新为 20 ...
- 五、Redis主从同步
Redis 主从同步 一.复制 二.旧版复制功能的实现 2.1.同步操作 2.2.命令传播操作 三.旧版复制功能的缺陷 四.新版复制功能的实现 五.部分重同步的实现 5.1.复制偏移量 5.2.复制积 ...
- 浅析 Redis 主从同步与故障转移原理
我们在生产中使用 Redis,如果只部署一个 Redis 实例,当该实例宕机,到恢复之前都不可用:虽说 Redis 一般都用来做缓存,但不可用给业务系统带来的影响也是不小的,流量大时甚至会导致整个服务 ...
- Docker搭建Redis主从同步详细教程
文章目录 介绍: redis主从同步概念 redis主从同步原理 redis主从同步流程图 搭建redis主从详细步骤: 拉取redis镜像 创建所需文件夹,用于映射容器相应文件路径 运行容器指定挂载 ...
- 【Redis】Redis主从同步中数据同步原理
[Redis]Redis主从同步中数据同步原理 文章目录 [Redis]Redis主从同步中数据同步原理 1. 全量同步 1.1 判断是否第一次数据同步 2. 增量同步 3. 优化Redis主从集群 ...
- 六、redis主从同步
参考Redis 的主从同步,及两种高可用方式 010.Redis 主从架构搭建及原理详解 一.介绍 1.简介 redis的主从就是多台redis的数据保持一致.redis主服务器可写入和读取,从服务器 ...
- Redis主从同步模式(replication)
主从同步模式(replication) 主从同步是指以一个节点为基准节点,将数据同步给从节点,使得主从节点的数据保持一致,主节点一般也称为Master,从节点Slave,一个Master节点可以有多个 ...
最新文章
- java8学习之Lambda表达式深入与流初步
- 深入“肠-脑”神经高速通道,揭开“第六感觉”面纱
- java 反射 工厂_JAVA反射机制、工厂模式与SPRING IOC
- 三目运算符 改变a标签的class属性
- HDU 5646 DZY Loves Partition
- Yii2 主从 数据库
- ellen 纽奥良大学演讲
- IntelliJ IDEA导入Maven之后强制刷新项目解决无法识别为Maven项目的问题
- kl变换与小波变换区别与联系_小波变换比傅里叶变换好在哪里_小波变换与傅里叶变换详解...
- 在STM8单片机中自己实现 printf()函数功能
- C语言:基于Easyx库实现连连看小游戏
- win10下装黑苹果双系统_黑苹果10.15.5系统与win10双系统镜像下载
- mysql两种事务管理器_MyBatis事务管理的两种方式
- 新唐(Nuvoton)8051单片机开发指南
- java微信qq登录接口开发_微博、微信、QQ第三方登陆实现 javaweb_thridlogin
- 计算机c盘能格式化吗,C盘能格式化吗
- ionic 构建 Cannot load gulp tasks: Error: Error in module: .\gulpfile.js:
- CenterNet2的深入浅出(CVPR2021)
- win10 powershell无法激活conda v4.9环境
- 暨南大学导师推荐、导师口碑、导师黑名单
热门文章
- IDEA安装教程(傻瓜式安装)
- 欺骗技术为何比蜜罐好
- 2022云南昆明市农村信用合作社联合社招聘精选题及答案
- 激光SLAM里程计标定 —— 直接线性方法
- 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)
- 手把手教会你:VMware Esxi系统安装步骤(版本7.0.3)
- 自研录屏软件(支持TCP/IP远程控制)
- TortoiseGit(乌龟git)简单操作oschina
- Adobe photoshop cs6使用技巧之截取文字
- sphinx mysql php使用_Sphinx全文检索之PHP使用教程