简述
- 主从复制,就是主机数据更新后根据配置和策略,自动同步到备机的 Master-Slaver 机制,Master 以写为主,Slave 以读为主。

- 好处
配从不配主
配置文件
- 拷贝多个 redis.conf 文件 include
- 开启
daemonize yes
// redis.conf 中配过了
- Pid 文件名字 pidfile
- 指定端口 port
- Log 文件名字
- 修改 dump.rdb~dbfilename
- appendonly 关掉或者换名字

2.2 主从关系
info replication 打印主从复制的相关信息
slaveof <ip> <port> 成为某个实例的从属服务器
salveof no one 从机变为主机



复制原理
- 每次从机联通后,都会给主机发送 sync 指令
- 主机立刻进行存盘操作,发送 RDB 文件给从机
- 从机收到 RDB 文件后,进行全盘加载
- 之后每次主机的写操作,都会立刻发送给从机,从机执行相同的命令

薪火相传
- 上一个 Slave 可以是下一个 Slave 的 Master,Slave 同样可以接收其他 Slaves 的连接和同步请求,那么该 Slave 作为了链条中下一个的 Master,可以有效减轻 Master 的写压力,去中心化降低风险。

- 中途变更转向:会清除之前的数据,重新建立拷贝最新的
- 风险:一旦某个 Slave 宕机,后面的 Slave 都没法备份
- 反客为主:当 Master 宕机后,后面的 Slave 可以立刻升为 Master(命令:
slaveof no one
),其后面的 Slave 不用做任何修改
哨兵模式
- 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

- 配置哨兵
- 调整为一主二仆模式
- 自定义的 /opt/myRedis 目录下新建 sentinel.conf 文件
- 在配置文件中填写内容:
sentinel monitor myMaster 127.0.0.1 6379 1
- 其中 myMaster 为监控对象起的服务器名称,1 为至少有多少个哨兵同意迁移的数量
- 启动哨兵:
redis-sentinel /opt/myRedis/sentinel.conf

故障恢复:


[19-8] Redis 主从复制
原文:https://www.cnblogs.com/liujiaqi1101/p/13617760.html