Redis系列--主从复制

Redis的主从复制功能实现数据的实时同步,主要用于读写分离、容灾恢复和数据备份。配置包括直接配置文件和使用命令行方式,从机不支持写操作。当主节点关闭时,从机保持待命状态,等待主节点重启。主从复制存在延迟问题,并且在master挂掉时需人工干预选择新master。
摘要由CSDN通过智能技术生成

一、redis主从复制介绍

在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。

一句话就是主从复制,master以写为主,slave以读为主。当master数据变化时,自动将新数据异步同步到其他slave数据库当中去。数据的复制是单向的,只能由主节点到从节点

二、作用 

1、读写分离

2、容灾恢复

3、数据备份

4、水平扩容支撑高并发

三、 配置以及命令

四、主从复制三种常见配置

一、一主两从

一、一主两从两种配置

1、直接配置文件配置,重启还会生效(具体配置请看官网)

2、使用命令配置,只是临时配置,重启失效

二、一主两从常见问题

1、从机是否可以执行写命令?

从机不可以执行写命令

 2、从机切入点问题 ,也就是slave是从头开始复制还是从切入点开始复制?

假设:

  master启动,写到k3

  slave1跟着master同时启动,跟着写到k3

  slave2写到k3后才启动,那之前的也是会复制过来的

3、主机shutdown后情况如何?从机是变为master还是原地待命    

从机不动,原地待命,从机数据可以正常使用;等待主机重启动归来 

4、 主机shutdown后,重启后主从关系还在吗?从机能够顺利复制

主从关系依旧在,也能顺利复制

 二、slaveof 新主库ip 新主库端口

其实就是上一个slave可以作为下一个slave的master,slave同样可以接收其他slave的连接和同步请求,那么该slave作为下一个的master,可以有效减轻主master的写压力。

 这种其实就是改变了一下数据同步的方向,其实6380还是不能进行写操作

使用命令:slaveof 新主库ip 新主库端口

 三、slaveof no one

使当前数据库停止与其他数据库的同步,转成主数据库

五、主从复制原理以及工作流程

slave启动,连接master:

1、slave启动成功连接到master后会发送一个同步命令

2、slave首次全新连接到master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除。

首次连接,全量复制:

3、master节点收到同步命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据命令缓存起来,master节点执行RDB持久化完成后,master将rdb快照文件和所有缓存的命令发送到所有slave,已完成一次完全同步

4、而slave服务器在接收到数据库文件数据后,将其存盘并加载到内存中,从而完成复制初始化。

保持通信:

5、master会发出PING包给slave,以此来确认slave是否存活。默认时间是10s

6、当第一次全量复制后,master如果有新增的数据,将会收集新的数据自动一次传给slave,完成同步

从机下线,重连续传:

7、当slave宕机或者下线后,master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterId。master只会把已经复制的offset后面的数据复制给slave,类似于断点续传。

六、主从复制的缺点

 1、复制延时,信号衰减

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

2、master挂了,slave不会自动重选一个master,且s剩余的slave不能执行写命令。每次master挂了都只能人工干预

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值