Redis的主从复制(Master/Slave)

一、是什么

主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slave机制,Master以写为主,Slave以读为主

二、能干啥

读写分离 容灾备份

三、怎么配

  1. 配从(库)不配主(库)
  2. 从库配置:slaveof 主库IP 主库端口
    每次与master断开后,都需要重新连接,除非你配置进redis.conf文件
    info replication
  3. 修改配置文件细节操作
    拷贝多个redis.conf文件
    开启daemonize yes
    Pid文件名字
    指定端口
    log文件名字
    Dump.rdb名字

四、 一主二从模式

Redis的主从复制(Master/Slave)

slaveof 127.0.0.1 6379 // 通过此命令,使6380,6381服务作为6379的从机

五、 薪火相传模式

slaveof 127.0.0.1 6379 // 通过此命令,使6380作为6379的从机
slaveof 127.0.0.1 6380 // 通过此命令,使6381作为6380的从机

六、 反客为主模式

基于一主二从模式,主机挂了,两个从机中选一个作为新主机

slaveof no one // 选为主机

七、复制原理

Slave启动成功连接到master后会发送一个sync命令
Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,
在后台进程执行完毕后,master将传送整个数据文件到slave,以完成一次完全同步
全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制:Master继续将新的所有收集到的修改命令一次传给slave, 完成同步
但只有是重新连接master,一次完全同步(全量复制)将会被自动执行

八、哨兵模式

  • 是什么
    反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
  • 怎么配
    基于一主二从,6379带着6380,6381
    在redis配置文件目录新建sentinel.conf 文件
    sentinel monitor 被监控数据库名字(自己起名字)127.0.0.1 6379 1
    最后一个1,表示主机挂了后,slave投票看谁接替成为主机,得票数多少后成为主机
    启动哨兵,redis-sentinel /etc/redis/sentinel.conf
    一组sentinel能同时监控多个Master

相关推荐