Centos6下Redis学习(二)——哨兵机制

官方文档https://redis.io/topics/sentinel

1 概念

哨兵是Redis高可用的机制,有以下几个用途

  1. 监控,持续监测主节点和从节点是否正常工作
  2. 通知,通过API通知系统管理者或应用程序Redis故障
  3. 故障转移,当一个主节点失效,会推举一个从节点称为新主节点,通知应用程序新的连接地址
  4. 配置提供,应用程序从哨兵获取Redis主节点地址

哨兵是分布式系统,判断主节点是否失效是通过多个哨兵判定的,降低了误判概率,而且个别哨兵故障不影响整体,系统鲁棒性高

2 安装

Redis2.8版本以后就内置了哨兵,至少启动3个哨兵才能工作,且必须写好配置文件sentinel.conf。最简单的一个配置文件如下

port 5000  # 端口 
sentinel monitor mymaster 127.0.0.1 6379 2  # 要监控的主节点
sentinel down-after-milliseconds mymaster 5000  # 主节点允许失联的时间,超过该时间哨兵开始判断主节点是否故障
sentinel failover-timeout mymaster 60000  # 超过该时间,主节点被认为已经故障
sentinel parallel-syncs mymaster 1  # 允许并行设置新主节点的从节点数

第二行最后一个数字表示判断这个主节点故障需要几个哨兵同意

最后一行,指的是主节点故障、推举出新主节点后,要修改从节点的配置使其指向新主节点。但从节点和新主节点的同步会导致该从节点不可用,因此如果这个值过大,会导致过多甚至全部从节点在一段时间内不可达,如果这个值过小,和新主节点的同步过程会很慢

现在安装一个伪分布式的哨兵,和伪分布式集群的安装十分相似,Redis集群的编译、搭建可以参考我另一篇博文Centos6下Redis学习(零)——集群搭建

编译好的redis-sentinel和sentinel.conf准备,我搭建的集群有三个master节点,记得节点密码也要配置

port 0000
bind 你的IP
sentinel monitor master1 10.142.78.21 7000 2
sentinel auth-pass master1 你的密码
sentinel down-after-milliseconds master1 60000
sentinel failover-timeout master1 180000
sentinel parallel-syncs master1 1


sentinel monitor master2 10.142.78.21 7001 2
sentinel auth-pass master2 你的密码
sentinel down-after-milliseconds master2 60000
sentinel failover-timeout master2 180000
sentinel parallel-syncs master2 1


sentinel monitor master3 10.142.78.21 7002 2
sentinel auth-pass master3 你的密码
sentinel down-after-milliseconds master3 60000
sentinel failover-timeout master3 180000
sentinel parallel-syncs master3 1

sentinel的配置文件第一行表示在哪个端口运行,我们现在要创建三个sentinel实例,分别运行在5000、5001、5002端口上

for i in {5000..5002}
do
    mkdir $i
    cp redis-sentinel $i
    cp sentinel.conf $i
    cd $i
    sed -i "s/port 0000/port $i/g" sentinel.conf  # 设置运行端口
    ./redis-sentinel sentinel.conf > sentinel.out 2>&1 &
    cd ../
done

运行后的哨兵,会输出这样的信息,我把它重定向到sentinel.out了

哨兵启动完成后,可以通过哨兵查看每个master节点的状态

./redis-cli -h 你的IP -p 5000  # 客户端访问哨兵
sentinel master master1  # 查看master1的状态

如果你的master节点有密码,而密码没有配置正确,这里就无法正确读取master节点的信息,num-slaves那里就会显示0

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值