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

作用

  • 读写分离
  • 容灾恢复

经验

  1. 配从库不配主库
  2. 从库配置:slaveof 主库ip 主库端口
    1. 每次与master断开,都需要重新连接,除非写进redis.conf
    2. info replication
  3. 修改配置文件细节
    1. 拷贝多个redis.conf
    2. 开启daemonize yes
    3. pid文件名字
    4. 指定端口
    5. log文件名字
    6. dump.rdb
  4. 常用三招
    1. 一主二仆
      1. init
      2. 一个master两个slave
      3. 日志查看
      4. 主从问题演示
        1. 配置slave会将master全部进行配置
        2. master死掉重开,slave会保持slave身份以及连接
        3. slave死掉重开会变为master
    2. 薪火相传
      1. 多级slave
      2. 中途变更转向,会清除之前的数据,然后重新拷贝
    3. 反客为主
      1. slaveof no one 使当前的数据库变成master

        复制原理

  • 全量复制
  • 增量复制

第一次全量复制,第二次增量复制

哨兵模式

反客为主的自动版。后台监视主机是否故障,如果故障根据投票数自动将从库变成主库。

步骤

  1. 创建sentinel.conf文件(空的),名字不能错。
  2. 配置哨兵,在sentinel.conf中填写内容
    1. sentinel monitor 被监控数据库名字(自己起) 127.0.0.1 6379 1 (这里写的是master的数据)
    2. 最后一个数字1,代表主机挂掉后slave投票看让那个变为主机。
  3. 启动哨兵

redis-sentinel /xxx/sentinel.conf

  1. 如果之前的master重启回来,会不会产生双master冲突

不会,会变成slave