主从复制是指将一台Redis服务器的数据,复制到其它的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。
默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
主从复制的作用:
1. 数据备份:主从复制实现了数据的热备份 ,是持久化之外的一种数据备份方式
2.故障恢复:当主节点出现问题时,可以从节点提供服务,实现快速的故障恢复,但实际上是一种服务的冗余。
3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写和读分离 分担服务器压力)
4.高可用基石:出了上述作用意外,主从复制还是哨兵和集群能够实施的基础,因此可以说主从复制是redis高可用的基础。
配置步骤:
1.查看当前库的信息:info replication
2.启动3台(至少3台,且数量为奇数)redis-server
3.查看状态ps - aux|grep redis
4.配置一主二从
默认情况下,每台Redis都是主节点,我们只需要配置从机即可。
命令:slaveof xx-xx-xx-xx(主机地址) 6379
PS:一般主机可以写 从机不能写只能读,主机中的所有信息和数据都会被从机保存!
即使主机断开链接(shut down),从机仍然可以连接到主机,如果使用的是命令行配置的从机,从机一旦断开连接后,就会变成主机了,如果再次变成从机,仍旧可以回去主机中的值
如果主机断开链接,从机可以使用命令:slaveof no one使自己变成主机
主从复制原理
Slave启动成功连接到master后会发送一个sync同步命令,master接到命令后,会启动后台的存盘进程,同时收集所有到的用于修改数据的命令,执行后传给从机,完成同步
全量复制:从机收到主机的文件数据后,将存盘加载到内存中。
增量复制:完成全量复制后,主机继续传送修改数据的命令给从机,完成同步