Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那Redis有没有一种机制可以在master和slave进行监控,并在master发送故障的时候,能自动将slave切换成master呢?有的,那就是哨兵。

哨兵的作用: 
1、监控redis进行状态,包括master和slave 
2、当master down机,能自动将slave切换成master

下面配置哨兵监控redis进程,假如我们已经配置好了Master和Slave,具体详细配置参考 http://www.cnblogs.com/liuyansheng/p/6530851.html

1、新建配置文件,命名为sentinel.conf,输入下面内容

sentinel monitor mymaster 192.168.137.101
sentinel auth-pass myMaster master123 #配置密码

mymaster :master服务的名称,随便定义 
192.168.137.101 6379:master的ip和端口 
1:在至少1个哨兵实例都认为master down后把master标记为odown(objective down客观down;相对应的存在sdown,subjective down,主观down)状态

sentinel.conf具体配置参考 http://www.cnblogs.com/liuyansheng/p/6531321.html

2、启动哨兵,在redis的src目录下,执行下面命令

 ./redis-sentinel ../../conf/sentinel.conf 

可以看到哨兵已经把master和slave都监控了。

3、进行哨兵测试,将103的slave进行shutdown,哨兵将监控到状态。

:X  Jun ::26.647 # +sdown slave 192.168.137.102: 192.168.137.103  @ myMaster 192.168.137.101 

然后将103重启服务,查看哨兵控制台

:X  Jun ::22.716 * +reboot slave 192.168.137.102: 192.168.137.103  @ myMaster 192.168.137.101 

已经进行恢复

4、将master kill掉,查看哨兵后台打印信息

:X  Jun ::50.300 # +sdown master myMaster  192.168.137.101   #说明master服务已经宕机
:X Jun ::50.300 # +odown master myMaster 192.168.137.101 #quorum /
:X Jun ::50.300 # +new-epoch
:X Jun ::50.300 # +try-failover master myMaster 192.168.137.101 #开始恢复
:X Jun ::50.304 # +vote-for-leader a496627d72d98fde98b8270e297ab32b330ebac7 #投票选举哨兵leader,现在就一个哨兵所以leader就自己
:X Jun ::50.304 # +elected-leader master myMaster 192.168.137.101 # 选中leader
:X Jun ::50.304 # +failover-state-select-slave master myMaster 192.168.137.101 #选择master
:X Jun ::50.357 # +selected-slave slave 192.168.137.102: 192.168.137.102 @ myMaster 192.168.137.101 #选中192.168.137. 6379作为切换
:X Jun ::50.357 * +failover-state-send-slaveof-noone slave 192.168.137.102: 192.168.137.102 @ myMaster 192.168.137.101 #发送slaveof no one命令
:X Jun ::50.420 * +failover-state-wait-promotion slave 192.168.137.102: 192.168.137.102 @ myMaster 192.168.137.101 #等待升级master
:X Jun ::50.515 # +promoted-slave slave 192.168.137.102: 192.168.137.102 @ myMaster 192.168.137.101 #192.168.137.102 6379升级为master
:X Jun ::50.515 # +failover-state-reconf-slaves master myMaster 192.168.137.101
:X Jun ::50.566 * +slave-reconf-sent slave 192.168.137.103: 192.168.137.103 @ myMaster 192.168.137.101
:X Jun ::51.333 * +slave-reconf-inprog slave 192.168.137.103: 192.168.137.103 @ myMaster 192.168.137.101
:X Jun ::52.382 * +slave-reconf-done slave 192.168.137.103: 192.168.137.103 @ myMaster 192.168.137.101
:X Jun ::52.438 # +failover-end master myMaster 192.168.137.101 #故障恢复完成
:X Jun ::52.438 # +switch-master myMaster 192.168.137.101 192.168.137.102 #master切换
:X Jun ::52.438 * +slave slave 192.168.137.103: 192.168.137.103 @ myMaster 192.168.137.102 #添加master从库
:X Jun ::52.438 * +slave slave 192.168.137.101: 192.168.137.101 @ myMaster 192.168.137.102 #添加master从库
:X Jun ::22.463 # +sdown slave 192.168.137.101: 192.168.137.101 @ myMaster 192.168.137.102 #发现192.168.137. 6379故障

5、配置多个哨兵,修改配置文件

sentinel monitor myMaster1 192.168.137.101
sentinel monitor myMaster2 192.168.137.101
sentinel monitor myMaster3 192.168.137.101 sentinel auth-pass myMaster1 master123
sentinel auth-pass myMaster2 master123
sentinel auth-pass myMaster3 master123

这里是配置3个哨兵,架构如下:

配置哨兵监控Redis运行情况的更多相关文章

  1. zabbix监控redis连接情况

    配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加  Include=/etc/zabbix/zabbix_agentd.d/ 添加脚本对red ...

  2. 使用Zabbix官方模板监控Redis运行状况

    运行环境: OS:CentOS 6.8 / Python: 2.6.6 / Pip: 7.1.0 / Redis:3.0 / Zabbix:3.0.3 Zabbix官方提供的监控模板. 项目地址:ht ...

  3. SpringMVC4+MyBatis+SQL Server2014+druid 监控SQL运行情况

    前言 在基于SpringMVC+MyBatis的开发过程中,我们希望能看到自己手写SQL的执行情况,在开发阶段我们可以配置log4j在控制台里基于debug模式查看,那么上线后,在生产声我们想查看SQ ...

  4. Replication--修改复制代理配置来查看代理运行情况

    1>在复制监视器中选中订阅右键 2>选择代理配置文件 3>将代理配置文件设置为”详细历史记录代理配置文件“,确定以保存 4>重启代理 5>代理运行一段时间后,重启代理 6 ...

  5. 使用jvisualvm工具来监控java运行情况

    jvisualvm是jdk自带的工具.所以要先安装jdk   1.jvisualvm工具的路径: 通过which jvisualvm来查看 /usr/local/jdk1.7.0_79/bin/jvi ...

  6. 使用jconsole工具来监控java运行情况

    参考:http://blog.163.com/lucas_nina/blog/static/185960149201493034258448/   经验证OK   jconsole是jdk自带的工具. ...

  7. jconsole工具监控java运行情况

    jconsole是jdk自带的工具.所以要先安装jdk  1.jconsole工具的路径: 通过which jconsole来查看 /usr/local/jdk1.7.0_79/bin/jconsol ...

  8. 在Centos中部署redis运行状态图形化监控工具 — RedisLive

    写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯OA基础服务中redis运行情况的一张监控图,然后想到自己的项目中前不久也上了re ...

  9. redis运行状态图形化监控工具 — RedisLive

    在Centos中部署redis运行状态图形化监控工具 — RedisLive   写在前面 前两天看到张善友老师的一篇文章<先定个小目标, 使用C# 开发的千万级应用>,里面给出了一张腾讯 ...

随机推荐

  1. css3 - 基本选择器

    有人说类选择器最好不要超过三层,其实我也是这样认为的,不是吗? 选择器分为四大类 标签.全选(相对于子类继承了0.1).类.ID 权值分别是:1->0.1->10->100(权值可叠 ...

  2. 算法 binary search

    // ------------------------------------------------------------------------------------------------- ...

  3. C++学习总结2

    链接上一篇日志,下面介绍下C++里面的其他内容 补充上一届里面的异常处理代码: try { cout << "try num" << endl; throw ...

  4. Ubuntu下编译Poco库

    本文主要记录下Ubuntu下编译Poco C++库的配置项以备后用.系统版本:Ubuntu 16.04,1 Poco 版本:1.9.0基本的步骤如下: 1.从官网下载最新的Poco源码,地址是:htt ...

  5. shell脚本分析mysql慢查询日志(slow log)

    使用percona公司的pt-query-digest分析慢查询日志.分析.统计的结果的比較清晰 #!/bin/sh slowlog_path=/root/slow_query_log everysl ...

  6. KVM技术

    今天是周六,看到一片KVM相关的文章,感觉写得很不错,翻译了,原文在这里:KVM Technology 在开放服务器虚拟化的应用方面,KVM虚拟化技术近年来广受关注.自从2006年10月份诞生以来,其 ...

  7. eclipse如何查问题?

    问题:从SVN上拉了一个项目,莫名奇妙就报错?看着就很纠结 解决之道:在Window下拉菜单show View 找到Problems 就可以查到具体的原因,我的这个是需要添加一个tomcat服务器

  8. MAC如何查看某个端口的占用情况

    执行如下命令: lsof -i tcp:8080 #8080为查询的端口号 会展示该端口的使用情况,然后kill -9 PID的值即可关闭该端口

  9. linux的su和sudo(转载)

    来源:http://www.jb51.net/LINUXjishu/12713.html 一. 使用 su 命令临时切换用户身份 1.su 的适用条件和威力 su命令就是切换用户的工具,怎么理解呢?比 ...

  10. apktool + eclipse 动态调试APK

    用了会AndBug,尽管挺强大的可是作为习惯了OD.EDB作为动态调试工具的人,自然有些不习惯,于是乎寻求新的动态调试解决方式.但大多数都是NetBeans + apktool.想着还得多下一个IDE ...