继着上章节的redis主从复制讲解sentinel监控的使用,“sentinel”查看该单词的意思是哨兵的意思,故就有了监控的意思。下面带着大家一步一步了解redis中sentinel的使用方法。

配置redis主从复制

一个主节点(端口6379),两个从节点(端口6380,6381),不会配置的请看我的上一篇redis主从复制的文章。

使用ping命令检查是否启动

redis-cli -h 127.0.0.1 -p 6379 ping

如下,返回PONG表示三个redis服务都已经启动完成

一个主节点:

两个从节点:

主节点查看链接信息

查看6379的连接信息
命令:info replication
可以发现6379的角色是master,有两个从节点,也就是端口为6380,6381的从节点(redis)

同样在6380 从节点中,该节点的角色是slave(从节点),与主节点的连接状态为up(master_link_status),通过这个命令可以方便的查看各个节点的连接状态等信息。

除了用info replication命令外,如下命令也可以快速查看链接信息
redis-cli -h 127.0.0.1 -p 6381 info replication
看个人喜好用哪个命令。

开始部署sentinel 节点

通过sentinel节点部署,可以使redis主从复置更加的高可用,那sentinel到底有什么用呢,从字面意思就看出sentinel是“哨兵”的意思,也就是来监控redis节点的,被sentinel监控的redis节点是主节点,sentinel具有故障转移的功能,什么是故障转移呢?当被sentinel监控的redis节点被意外中断后,sentinel会自动的选择一个角色为slave节点的redis为主节点,维护后续并保证正确的主从复制的关系,而原来的从节点还是从节点,不过它们的主节点变成新升级为主节点的redis服务。下面咱们就一步一步开始搭建sentinel。

部署sentinel

进入安装redis的目录下的配置目录,我的本地是/etc/redis

我这边就直接使用原本的sentinel.conf配置,来作为第一个sentinel节点。我们可以进入sentinel.conf配置看下里面到底有啥配置信息:
sentinel monitor mymaster 127.0.0.1 6379 2 //监控的主节点IP和端口,其中mymaster是该节点的别名,2表示判断主节点失败至少需要两个节点同意
sentinel down-after-milliseconds mymaster 30000 //通过ping命令,各个sentinel节点向redis节点是否可达,超过30000毫秒,就判定不可达
sentinel failover-timeout mymaster 180000 //故障转移超时时间为180000毫秒
如果还有其它的配置,可以自己在探索下

启动sentinel

启动命令:
sudo redis-sentinel sentinel.conf --sentinel

查看sentinel启动情况
redis-cli -h 127.0.0.1 -p 26379 INFO Sentinel
可以看出与查看redis启动的情况命令类似,截图中可以看到此时sentinel监控redis节点是端口为6379的服务,6379有两个从节点,状态为OK,别名是mymaster

继续再配置两个sentinel节点,
sudo cp sentinel.conf sentinel2.conf
sudo cp sentinel.conf sentinel3.conf
修改两个配置的端口为26380, 26381,其它配置可以不用修改
修改完后,分别启动
sudo redis-sentinel sentinel2.conf --sentinel
sudo redis-sentinel sentinel3.conf --sentinel

启动后再次查看sentinel.conf的配置,可以发现配置中多了两个从节点的信息,截图如下:

演示下故障转移

查看当前sentinel监控的节点信息

查看26379端口的Sentinel节点监控的主节点信息

查看目前redis的进程ps -ef | grep redis

中断redis的主节点

之前我们sentinel监控的主节点是6379这个端口,这时候我们kill这个端口的进程,或者使用shutdown命令:
redis-cli -h 127.0.0.1 -p 6379 shutdown
过了30秒之后查看26379端口的Sentinel节点监控的主节点信息,发现主节点信息变成了6380端口的redis(之前的从节点)

验证redis的主节点是否改变

验证6380端口的redis变成主节点,此时我们在6380 的redis上设置一个key值,在6381端口的redis上验证是否能获取到该key值

此时发现,6380变成了主节点,6381从节点没有变化,还是从节点。
下面我再次启动6379端口的redis

发现原先的主节点6379已经变成了从节点,而它的主节点变成了6380。此时我们再回过头看下26379的监控节点变化,还是6380端口。



至此sentinel介绍就讲完了,不足之处欢迎指正。##

redis sentinel介绍的更多相关文章

  1. Redis Sentinel 介绍

    Redis Sentinel   sentinel的功能: 监控:sentinel节点定期检测redis数据节点,其余sentinel节点是否可达. 通知:sentinel 节点会将故障转移结果通知给 ...

  2. Redis Sentinel基本介绍(翻译以及总结)

    目录 Redis Sentinel介绍 分布式的Redis Sentinel 快速开始 获取Sentinel 启动Sentinel 部署Sentinel的基本要求 配置Sentinel 其他的Sent ...

  3. (转)基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

    转载自:http://warm-breeze.iteye.com/blog/2020413 本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedi ...

  4. 基于Redis Sentinel的Redis集群(主从Sharding)高可用方案(转)

    本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在 ...

  5. 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案

    本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本(强制),Redis2.8及以上版本(可选,Sentinel最早出现在 ...

  6. Redis Sentinel 高可用部署实践集群

    一.Redis Sentinel 介绍    1.Sentinel     数据库环境搭建,从单机版到主备.再到多数据库集群,我们需要一个高可用的监控:比如Mysql中,我们可能会采用MHA来搭建我们 ...

  7. 【Redis】Redis Sentinel 哨兵模式搭建

    Redis Sentinel介绍 Redis Sentinel是Redis的官方高可用性解决方案 Redis Sentinel为Redis提供高可用性.实际上,这意味着使用Sentinel可以创建一个 ...

  8. Redis Sentinel 高可用实现说明

    背景:      前面介绍了Redis 复制.Sentinel的搭建和原理说明,通过这篇文章大致能了解Sentinel的原理和实现方法以及相关的搭建.这篇文章就针对Redis Sentinel的搭建做 ...

  9. Redis Sentinel高可用架构

    Redis目前高可用的架构非常多,比如keepalived+redis,redis cluster,twemproxy,codis,这些架构各有优劣,今天暂且不说这些架构,今天主要说说redis se ...

随机推荐

  1. 20145324 Java实验三

    一.git 上传代码步骤 上传结果 原代码 下载同学代码 更改 二.重构 原代码 rename 原代码 实验总结 这次实验比较简单,而且终于解决了git的问题,很开心 步骤 耗时 百分比 需求分析 1 ...

  2. Unity3D-飞机拖尾效果

    1.插件准备 unity3d官网,Assert Store搜索Cartoon_airplane 插件 2.拖尾效果实现 飞机显示 拖尾组件设计 在airplane_02下 右键 Effects-Tra ...

  3. python接口自动化读取json,yaml配置文件+封装requests+unittest+HTMLRunner实现全自动化

    # coding=utf-8 import json import requests class TestApi(object): """ /* @param: @ses ...

  4. 【luogu P1606 [USACO07FEB]荷叶塘Lilypad Pond】 题解

    题目链接:https://www.luogu.org/problemnew/show/P1606 这个题..第一问很好想,但是第二问,如果要跑最短路计数的话,零边权的花怎么办? 不如这样想,如果这个点 ...

  5. POJ 1157 LITTLE SHOP OF FLOWERS (超级经典dp,两种解法)

    You want to arrange the window of your flower shop in a most pleasant way. You have F bunches of flo ...

  6. Java职业规划

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

  7. MySQL+MyCat分库分表 读写分离配置

    一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...

  8. 修复 Cydia 不能上网的问题

    使用 h3lix 越狱 10.3.3 的 iPhone5,进入 Cydia 不能联网解决方法:打开 Cydia,进入已安装列表,点击 Cydia Installer 卸载,然后看到桌面上就没有 Cyd ...

  9. PHP中的递增/递减运算符

    看这段代码 <?php $a=10; $b=++$a; //此语句等同于 ; $a=$a+1 ; $b=$a echo $a."<br>"; echo $b; ? ...

  10. Spring Web Async异步处理#Callable #DeferredResult

    Spring MVC 对于异步请求处理的两种方式 场景: Tomcat对于主线程性能瓶颈,当Tomcat请求并发数过多时,当线程数满时,就会出现请求等待Tomcat处理,这个时候可以使用子线程处理业务 ...