论Redis的主从复制

主从复制的作用

  • 读写分离:master写、slave读,提高服务器的读写负载能力
  • 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数 量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
  • 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复
  • 数据冗余:实现数据热备份,是持久化之外的一种数据冗余方式
  • 高可用基石:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案

主从复制的阶段一:建立连接

建立slave到master的连接,使master能够识别slave,并保存slave端口号
建立连接的方法:
在slave的配置文件中加入一条参数

slaveof masterip 主服务器ip地址和端口

主从复制阶段二:数据同步

此过程大致分为两个阶段

  1. 全量复制
    连接master后即开始全量复制
  2. 部分复制
    全量复制过程中master可能会接收新的数据,此时开始部分复制。
    全量复制过程中接收的命令会被存储在复制缓冲区中,部分复制就是在接收缓冲区中的命令来执行bgrewriteaof,恢复数据
    注意
    如果master数据量巨大,数据同步阶段应避开流量高峰期,避免造成master阻塞,影响业务正常执行
    复制缓冲区的大小只有1M,可能会导致数据溢出,可以去修改复制缓冲区的大小

主从复制阶段三:命令传播

  • 当master数据库状态被修改后,导致主从服务器数据库状态不一致,此时需要让主从数据同步到一致的状态,同步的动作称为命令传播
  • master将接收到的数据变更命令发送给slave,slave接收命令后执行命令

心跳机制

进入命令传播阶段后,master与slave间需要进行信息交换,使用心跳机制进行维护,实现双方连接保持在线
master心跳:默认十秒一次,来判断slave是否在线
slace心跳:一秒一次,来判断master是否在线以及汇报slave自己的复制偏移量,获取最新的数据变更命令

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值