Redis集群 https://blog.csdn.net/miss1181248983/article/details/90056960
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点(master/leader),后者称为从节点(slave/follower),数据的复制是单向的,只能由主节点到从节点,slave以读为主
特点
1. 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库
2. 从数据库一般都是只读的,并且接收主数据库同步过来的数据
3. 一个master可以拥有多个slave,但是一个slave只能对应一个master
4. slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来
5. master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务 * master挂了以后,不会在slave节点中重新选一个master
作用
1.数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式
2.故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复,实际上是一种服务的冗余
3.负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务,分担服务器负载,尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量
4.高可用基石:主从复制是哨兵和集群的基础,因此说主从复制是Redis高可用的基础
配置
命令 info replication #查看当前库的信息
127.0.0.1:6379> info replication
# Replication
role:master #角色 master 主节点
connected_slaves:0 #从机数量
1.配置从机
1)命令(临时)
slaveof 127.0.0.1 6379 #修改角色为127.0.0.1:6379的从机
2)配置文件(永久
# slaveof <masterip> <masterport>
# masterauth <master-password>
去掉#注释,并修改为主机信息
2.复制原理
Slave启动成功连接到master后会发送一个 sync同步命令,Master接到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集合命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步
全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:Master继续将新的所有收集到的修改命令依次传送给slave,完成同步
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行