redis主从复制浅析

什么是redis主从复制

新建起的redis默认是主节点,可以通过设置slaveof ip:port,成为某个主节点的从节点。主节点写入新数据后,把数据备份到从节点,使得主从节点拥有在某一时刻相同的数据。从节点存在的意义,当主节点发生故障时,通过哨兵机制,从节点升级为主节点继续为系统提供服务。在非常注重性能的系统,主节点可以考虑不做持久化操作,而是交给从节点去做,这样可以减轻主节点压力。主从节点可以有一主一从、一主多从、树状主从。

主从复制作用

  1. 数据冗余:主从复制实质上是数据的热备份,除了持久化方式外的另外一个选择
  2. 故障转移:当主节点发送问题后,借助哨兵机制,从节点可以升级为主节点,继续提供服务
  3. 负载均衡:在主节点压力大的时候,主从读写分离的方式是一个可供选择的方式。主节点负责写数据,从节点负责读数据,提高系统的并发量
  4. 高可用基础:redis集群的高可用离不开主从复制机制

从节点常用配置

1.-slaveof 192.168.146.10 6379,配置主节点位置
2.-port 6380 配置从节点端口
3.-masterauth 12345678 配置主节点的访问密码
4.-slave-read-only yes 从节点只读

主从数据同步流程

主从数据同步
上述流程解析如下:

  1. 从节点从配置文件读取主节点信息,包括IP、端口、密码
  2. 从节点与主节点建立socket连接
  3. 从节点发送ping命令到主节点,若主节点回复pong,表示正常,开始正常心跳,默认10s一次,repl-ping-slave-period控制发送频率
  4. 从节点读取权限信息,向主节点发起权限验证
  5. 第一次同步数据是全量复制,后续进行基于命令的部分复制。即主节点执行了写命令之后,会把命令发送给从节点,使得从节点执行相同的命令完成数据复制。显然,全量复制很消耗性能,redis从节点会优先选择部分复制。

命令持续复制阶段存在延迟

命令从主节点发送到从节点是异步过程,即主节点不会等从节点回复信息。因此,主从节点的数据不是强一致性的。主从节点的延迟程度主要受网络、主节点中的repl-disable-tcp-nodelay配置影响。当repl-disable-tcp-nodelay no时,TCP会立马将主节点的数据发送给从节点,带宽增加但延迟变小。相反,如果为disable-tcp-nodelay yes,TCP会粘包,此时带宽减少但延迟增加。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值