Redis学习之哨兵模式(九)

这里写目录标题

  • 一、哨兵简介
    • 1.1 哨兵概念
    • 1.2 哨兵作用
    • 1.3 哨兵工作原理
  • 二、启用哨兵
    • 2.1 启动准备
    • 2.2 配置
    • 2.3 本地测试

一、哨兵简介

1.1 哨兵概念

  Redis的主从架构中,由于主从模式是读写分离的,如果主节点(master)宕机了,该怎么办?这时候就需要在从节点(slave)中选出新的master,这里就需要redis的哨兵。
  哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。

1.2 哨兵作用

  • 监控:监控master和slave

    不断的检查master和slave是否正常运行

    master存活检测、master与slave运行情况检测

  • 通知(提醒):当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知

  • 自动故障转移:断开master与slave连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服务器地址

注意:哨兵也是一台redis服务器,只是不提供数据相关服务,通常哨兵的数量配置为单数

1.3 哨兵工作原理

哨兵在进行主从切换过程中经历三个阶段

  • 监控
  • 通知
  • 故障转移

二、启用哨兵

2.1 启动准备

  • 配置一拖二的主从结构
    (在一个主机上设置三个配置文件,端口号设置不同)。

  • 配置三个哨兵(配置相同,端口不同),参看sentinel.conf

2.2 配置

1:设置哨兵监听的主服务器信息, sentinel_number表示参与投票的哨兵数量

sentinel monitor master_name  master_host    master_port     sentinel_number

2:设置判定服务器宕机时长,该设置控制是否进行主从切换

sentinel down-after-milliseconds master_name    million_seconds

3:设置故障切换的最大超时时

sentinel failover-timeout master_name    million_seconds

4:设置主从切换后,同时进行数据同步的slave数量,数值越大,要求网络资源越高,数值越小,同步时间越长

sentinel parallel-syncs master_name sync_slave_number
  • 启动哨兵
redis-sentinel filename

2.3 本地测试

1、需要的远程连接
Redis学习之哨兵模式(九)_第1张图片
2、conf配置文件

port 6401
dir "/redis/data"
dbfilename "dump-6401.rdb"


port 6402
dir "/redis/data"
dbfilename "dump-6402.rdb"
slaveof 127.0.0.1 6401


port 6403
dir "/redis/data"
dbfilename "dump-6403.rdb"
slaveof 127.0.0.1 6401

3、sentinel配置文件

port 26401
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 deny-scripts-reconfig yes


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 deny-scripts-reconfig yes


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 deny-scripts-reconfig yes

你可能感兴趣的:(数据库,redis,学习,数据库)