redis系列七-- 哨兵模式配置

redis哨兵模式

  • 哨兵简介
  • 哨兵作用
    • 保障redis高可用
    • 配置哨兵模式
    • redis 一主两从配置:
    • sentinel.conf配置文件配置:

哨兵简介

哨兵(sentinel) 是一个分布式系统,跟redis server一样需要我们人为启动才可工作,用于对主从结构中的每台redis服务器进行监控,当出现故障时通过投票机制选择新的master并 将所有slave连接到新的master。

哨兵作用

保障redis高可用

  • 监控:

    • 不断的检查master和slave是否正常运行
    • master存活检测、master与slave运行情况检测
  • 通知(提醒):

    • 当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
  • 自动故障迁移:

    • 断开master与slave连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服 务器地址
  • 当旧的master起死回生后,会变成新master的slave从节点*

  • 注意:
    哨兵也是一台redis提供的server,需要我们自行启动,才可以提供监管工作,通常哨兵的数量配置为奇数,要不然选举投票时会出现1:1,造成选不出来新master问题。

配置哨兵模式

  • 配置哨兵:
  • 配置一主两从三哨兵结构
  • 三个哨兵(配置相同,端口不同)
  • 启动哨兵命令
    redis系列七-- 哨兵模式配置_第1张图片

redis 一主两从配置:

生产环境下,127.0.0.1 要换成 外网ip。

  • redis-master-6401.conf:
port 6401
dir "/redis/data"
dbfilename "dump-6401.rdb"
  • redis-master-6402.conf:
port 6402
dir "/redis/data"
dbfilename "dump-6402.rdb"
slaveof 127.0.0.1 6401
  • redis-master-6403.conf:
port 6403
dir "/redis/data"
dbfilename "dump-6403.rdb"
slaveof 127.0.0.1 6401

sentinel.conf配置文件配置:

生产环境下,127.0.0.1 要换成 外网ip。
三个哨兵监听都是主节点ip, 并且哨兵有办法获取从节点ip。

  • sentinel-26401.conf:
port 26401
dir "/redis/data"
#设置哨兵监听的主服务器信息,sentinel_number表示参与投票的哨兵数量
sentinel monitor mymaster 127.0.0.1 6401 2
#设置判定服务器宕机时长,该设置控制是否进行主从切换
sentinel down-after-milliseconds mymaster 5000
#设置故障切换的最大超时时长
sentinel failover-timeout mymaster 20000
#指定了在执行故障转移时, 最多可以有多少个从服务器同时对新的主服务器进行同步
sentinel parallel-sync mymaster 1
#设置master和slaves验证密码
sentinel auth-pass mymaster 123456 
# 安全,避免脚本重置,默认值yes
sentinel deny-scripts-reconfig yes
  • sentinel-26402.conf:
port 26402
dir "/redis/data"
sentinel monitor mymaster 127.0.0.1 6401 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 20000
sentinel parallel-sync mymaster 1
sentinel auth-pass mymaster 123456 
sentinel deny-scripts-reconfig yes
  • sentinel-26403.conf:
port 26403
dir "/redis/data"
sentinel monitor mymaster 127.0.0.1 6401 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 20000
sentinel parallel-sync mymaster 1
sentinel auth-pass mymaster 123456 
sentinel deny-scripts-reconfig yes

你可能感兴趣的:(redis,分布式)