Redis_主从复制

Master-slaver

主机数据更新后根据配置和策略,自动同步到备用机的master/slaver机制

  • Master 以写为主
  • slaver  以读为主
  • Slaver  只可以读取,不能写入

作用

  • 读写分离
  • 容灾恢复

常用方式

一主二仆

一台主机,多台备机

  1. Init
  2. 1个Master 两个 Slaver
  3. Info replication:查看主从情况
  4. Master 写入数据:宕机之后,从机不会变成主机,重启之后继续使用
  5. Slaver 读取数据 ,备份数据,宕机重启之后会自动增量备份

薪火相传

  • 去中心化
  • 减轻了主机master的负担
  • 同步的延时
  • 上一个Slaver可以是下一个slaver的Master,Slaver同样可以接受其他Slavers的连接和同步请求,那么该Slaver作为链条中下一个master,可以有效的减轻master的写压力
  • 中途变更转向:会清除之前的数据,重新建立拷贝最新的
  • Slaveof 新主机IP 新主机 端口

反客为主

  • 从机 变  主机
  • 在主机宕机了之后,变成了主机
  • Slaveof no one  当前数据库停止与其他数据库同步,转成主数据库

哨兵模式sentinel

  • 哨兵 -- 监控
  • 反客为主的自动版本
  • 从后台监控主机是否故障,如果故障了根据投票数自动将从库转化为i主库
  • 一组 sentinel能同时监控多个Master

复制的原理

  1. Slaver启动成功连接到mater后会发送一个sync命令
  2. Matser接到命令之后启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,Mater将传送整个数据文件到slaver,以完成一次完全同步
  3. 全量复制: Slaver服务在接受到数据后,将其存盘并加载到内存
  4. 增量备份:Maser继续将新的所有收集到的修改命令依次传给Slaver,完成同步
  5. 但是只要是重新连接Master,一次完全同步(全量备份)将被自动执行
  6. 复制延迟

使用

从库配置:

slaveof 主库 IP 主库端口   SLAVEOF 127.0.0.1 6379

  • 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件
  • Info replication  

修改配置文件细节操作

  • 拷贝多个redis.conf文件
  • 开启 deamonize yes
  • Pid文件名字
  • 指定端口
  • log文件名字
  • Dump.rdb名字

原文地址:https://www.cnblogs.com/ZhaoLong-study/p/13583059.html