继着上章节的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. 初始化列表initializer_list

    初始化列表定义在<initializer_list>,初始化列表简化了参数数量可变的函数的编写,初始化列表的所有的元素都应该是同一种数据类型 由于定义了列表中允许的类型,所以初始化列表是安 ...

  2. Spring(二)之入门示例

    任何编程技术,特别是入门示例,通常都是Hello World,在这里我也遵循这个业界公认的原则. 这里我使用的maven项目,大家如果想要演示,建议使用Eclipse(含maven插件)或Idea(含 ...

  3. Lombok安装和使用

    前言 Lombok是一个开源项目,其使用简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码,特别是对于POJO. Lombok的官网:https://projectlombok ...

  4. HDU 2076 夹角有多大

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2076 夹角有多大(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java ...

  5. SpringMVC中controller的几种返回值

    String :跳转到对应的返回值中. return “/index”: ModelAndView: 控制页面跳转方式: 1. ModelAndView modelAndView = new Mode ...

  6. java 企业门户网站 源码 自适应响应式 freemarker 静态引擎 html5 SSM

    官网 http://www.fhadmin.org/ 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的ht ...

  7. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

  8. vlookup函数使用---execl公式

    目录 vlookup函数使用---execl公式 1.用途: 2.函数语法: 3.使用方式: 4.实际案例+步骤解析 5.常见错误 vlookup函数使用---execl公式 1.用途: 我们有一张工 ...

  9. JavaScript碎片———函数闭包(模拟面向对象)

    经过这几天的博客浏览,让我见识大涨,其中有一篇让我感触犹深,JavaScript语言本身是没有面向对象的,但是那些大神们却深深的模拟出来了面向对象,让我震撼不已.本篇博客就是在此基础上加上自己的认知, ...

  10. JQuery 同时获取多个标签的指定内容并储存为数组

    在网页开发中经常会碰到获取同种类型的 标签 的值得问题,比如下面的两种情况. 当需要批量获取同种标签的指定值时,新人就会碰上一点小麻烦. 比如 id=problem1的demo var list1=$ ...