author:徐振东

createTime:2022-05-16

updateTime:2022-06-10


2022-06-10: 培训结束

# Redis哨兵模式搭建

在主从模式下,只有master节点可提供读写服务,而slave节点只读。当master节点宕机后,redis就无法正常向外提供服务,需人工介入处理,不是特别友好。哨兵模式可实时监控 master 节点 是否能够正常对外提供服务,若mater节点不可用,可自动切换主从,继续对外提供服务

# 主从节点信息

  1. 172.16.10.5 6380(master节点)
  2. 172.16.10.6 6380
  3. 172.16.10.7 6380

# 搭建哨兵模式

  • 修改配置文件

    在redis的安装目录下有一个 sentinel.conf 文件,打开并修改以下参数

    • master节点的 hostport

      # 这里 sentinel monitor 代表监控; 
      # mymaster 是节点名称,可自定义;
      # 172.16.10.5 6380 是节点的host和port信息;
      # 最后一个参数2, 代表至少有2个哨兵认为 master 节点不可用,才可进行failover操作,进行主从切换,改参数可根据实际需要进行配置
      sentinel monitor mymaster 172.16.10.5 6380 2
      
    • master节点的password

      # sentinel auth-pass <master-name> <password>
      # sentinel auth-pass 代表配置 master 节点的密码
      # <master-name> 即为上面配置的节点名称,这里为 mymaster
      # <password> 密码
      sentinel auth-pass mymaster 123456
      
  • 启动哨兵模式

    src/redis-sentinel ./sentinel.conf
    
  • 验证哨兵模式是否启动成功

    哨兵模式启动后,会自动在配置文件sentinel.conf追加监控信息,若看到以下信息则说明启动成功

    # Generated by CONFIG REWRITE
    protected-mode no
    # 已知的 slave 节点信息
    sentinel known-replica mymaster 172.16.10.7 6380
    sentinel known-replica mymaster 172.16.10.6 6380
    # 已知的 其它哨兵节点
    sentinel known-sentinel mymaster 172.16.10.6 26380 7cd0626292899e7a61cbdfcf9461eee39be0c3ea
    sentinel known-sentinel mymaster 172.16.10.7 26380 ad3d6e11a6e5beb8aa52d2c35e108d138361bdf7
    # master节点的纪元号,每切换一次主从, 纪元号加一
    sentinel current-epoch 0