- 将主机服务器的内容复制到从机中 -redis使用异步复制,从机也可以拥有自己的从服务器 - 只需要配置从机关联的主机,不需要配置主机 - 主机shutdown后,从机不动,直到主机重新启动 - 主机/从机shutdown重启后,主从关系还在且可以继续同步数据 - 如果使用命令配置复制,那么当从机重启后,主从关系将消息,需要重新配置 - 中途变更转向,会清除之前的数据,重新建立拷贝最新的 # 命令 - slaveof no one 当前从机脱离主机,成为单独的主机 - replicaof 主库IP 主库端口 从机配置主从复制 - slaveof 主库IP 主库端口 更改从机的主机 # 原理和工作流程 - slave启动,同步初请 - slave启动成功连接到master后会从发一个sync命令 - slave首次全新连接master,一次性完全同步将自动执行,slave自身原有数据会被master数据覆盖清除 - 首次连接,全量复制 - master节点收到sync命令后会开始在后端保存快照(RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行rdb执行化完成后,master将rdb快照文件和所有缓存的命令发送到所有slave,完成一次性同步 - slave服务在接收到数据库文件数据后,将其存盘并加载到内存中,完成复制初始化 - 心跳持续,保持通信 - 10s发一次心跳 ``` repl-ping-repica-period 10 ``` - 进入平稳,增量复制 - master继续将新的所有收集到的修改命令自动依次传给slave,完成同步 - 从机下线,重连续传 - master会检查backlog里面的offset,master和slave会保存一个复制的offset还有一个masterID,offset是保存在backlog中的,master只会把已经复制的offset后面的数据复制给slave,类似断点续传 # 缺点 - 复制延迟,信号衰减 # 添加从机 - 配置文件添加方法 ``` salveof ip port ``` - 命令添加方法 ``` slaveof ip port ``` ## 从机配置 - slave-read-only 控制从机是只读模式,默认为yes - min-slaves-max-lag 指定网络延迟的最大值 - min-slaves-to-write 从服务器的数量 ## 从机设置主机密码 - 如果主服务设置了密码,那么从服务器需要进行身份验证的设置。 - 命令方式,二选一 ``` config set masterauth password masterauth password ``` - 配置文件方法 ``` masterauth password ```