Redis从入门到精通-Redis-主从复制-复制原理一主二仆
一、一主二仆,宕机情况分析
1、从机挂掉的情况
启动三个redis服务
手动关掉其中一台:主机存值正常,从机取值正常
重启停到的那一台:发现从服务器重启后并不能变成从服务器,而是变成单独的主服务器
通过命令让刚刚重启的服务器变成从服务器:发现能读到之前从服务器挂掉后主机存的数据,即主服务器里有什么数据,从服务器都会从头到尾开始给你复制
slaveof 127.0.0.1 6379
2、主机挂掉的情况
停掉主机
重新连接主机
二、主从复制原理
- Slave启动成功连接到master后会发送一个sync命令
- Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执 行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步
- 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
- 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
- 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行
1、当从连接上主服务器之后,从服务器向主服务器发送进行数据同步消息
2、主服务器接到从服务器发送过来同步消息,把主服务器数据进行持久化,rdb文件,把rdb文件发送从服务器,从服务器拿到rdb进行读取
3、每次主服务器进行写操作之后,和从服务器进行数据同步(主服务器发起,从服务器只在第一次发起请求同步数据)