• Redis哨兵(sentinel)


    介绍

    Redis的sentinel主要是用来管理多个Redis服务器,sentinel负责(1)监控主服务器和从服务器的运行状态(2)主服务器运行故障时自动切换其中一台从服务器为主服务器

    Sentinel常用配置选项

    sentinel monitor master-name host port quorum

    例子:sentinel monitor mymaster 127.0.0.1 6379 2

    例子表示的是声明该Sentinel监控的master的名字叫做mymaster,地址为127.0.0.1:6379,最后一个2表示的意思是当集群中有2个Sentinel认为master宕机了或者1个Sentinel有2次认为master宕机了,就会真正认为该master彻底宕机了。

    sentinel auth-pass master-name password

    如果监控的Redis服务器设置了密码,这需要配置这个选项

    sentinel down-after-milliseconds master-name milliseconds

    Sentinel会向master发送心跳PING来确认master是否运行,如果master在一定时间(down-after-milliseconds,单位毫秒)内不回应PONG 或者是回复了一个错误消息,那么Sentinel会认为master已经宕机了。

    实验介绍

    搭建Redis集群,如下所示

    根据上图配置并启动三台Redis服务器和一台Sentinel

    启动Sentinel需要用到sentinel.conf,sentinel.conf可以在redis的源码包中找到,Sentinel的启动方式为redis-sentinel /path/to/sentinel.confredis-server /path/to/sentinel.conf --sentinel

    sentinel.conf的部分配置为
    sentinel monitor mymaster 127.0.0.1 6379 1
    sentinel down-after-milliseconds mymaster 5000

    成功启动sentinel

    接下来,shutdown master(localhost:6379)即在命令行中敲入./bin/redis-cli -p 6379 shutdown
    等待一小段时间后,我们观察Sentinel,可以看到Sentinel进行了故障自动转移

    接下来连接到127.0.0.1:6381,确实可以看到被设置为了master,并且127.0.0.1:6380是其slave

    master宕机后由哪台slave成为新的master是由各个slave的slave-priority(在redis.conf中配置)决定的,slave-priority越小则优先被设置为新master,如果相同则随机设置一台slave为master

  • 相关阅读:
    cas 单点登录(SSO)实验之二: cas-client
    前端要给力之:语句在JavaScript中的值
    【Linux】Tomcat安装及一个服务器配置多个Tomcat
    【Linux】 JDK安装及配置 (tar.gz版)
    Android自动化测试中AccessibilityService获取控件信息(1)
    Android自动化框架 模拟操作 模拟测试
    Android应用程序如何调用shell脚本(一)
    关于lidroid xUtils 开源项目
    android 开源项目列表【持续整理中。。。】
    android开发常用组件【持续更新中。。。】
  • 原文地址:https://www.cnblogs.com/helbing/p/5264858.html
Copyright © 2020-2023  润新知