一、什么是主从复制
- Redis的主从复制就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master写为主,Slaver以读为主
二、 如何进行配置
- 配从不配主
- 从库配置:slaveof 主库ip 主库端口
每次与master断开之后,都需要重新连接,除非配置在redis.config文件中 - 修改配置文件细节操作
拷贝多个redis.config文件
开启daemonize yes
pid文件名字
指定端口
log文件名字
Dump.rdb名字
三、常见方式
1. 一主二仆
- init
- 一个Master俩个Slave
- 日志查看–info replication
2. 薪火相传
- 上一个Slave可以是下一个Slave的Master,Slave同样可以接收其他Slave的连接和同步请求,那么该slave作为链条中的下一个master,可以有效减轻master的写压力
- 中途变更转向会清除之前的数据,重新建立拷贝最新的
- Slaveof 新主库ip 新主库端口
3. 反客为主
- slaveof no one
- 使当前数据库停止与其他数据库同步,转为主数据库
四、复制原理
1. 全量复制
- 当slave启动成功连接到master后会发送一个psync命令,master接到这个命令后,启动后台的存盘程序,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步,而slave接收到数据库文件数据后,将其存盘并加载到内存中。
2. 增量复制
- master继续将新的所有收集到的修改命令依次传给slave,完成同步。但是只要重新连接master,一次完全同步即全量复制将会被自动执行。
五、哨兵模式
- 定义:哨兵模式即反客为主的自动版,能在后台监控主机是否故障,如果故障了根据投票数自动将从库转化为主库。
1. 如何使用
- 新建一个sentinel.config文件,对该文件进行配置
- sentinel monitor 被监控的数据库名字 ip地址 端口号 1
数字1,表示主机挂掉后slave投票看让谁接替成为主机,得票数多少后成为主机 - redis-sentinel /路径/sentinel.config
- 当主机重新连接回来后,自动变为从机,进行全量复制。
2. 复制的缺点
- 复制延时