文档章节

redis学习笔记---redis的哨兵Sentinel

ivan-Zhao
 ivan-Zhao
发布于 2015/12/16 14:35
字数 1037
阅读 320
收藏 7
  一、介绍:
    redis的sentinel系统用来管理多个redis服务器,可以实现一个功能上实现HA的集群。该系统主要执行三个任务:
    ①监控( Monitoring ): Redis Sentinel实时监控主服务器和从服务器运行状态。
    ②提醒(notification): 当被监控的某个 Redis 服务器出现问题时, Redis Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知
    ③自动故障转移( Automatic failover ): : 当一个主服务器不能正常工作时,Redis Sentinel 可以将一个从服务器升级为主服务器, 并对其他从服务器进行配置,让它们使用新的主服务器。当应用程序连接Redis 服务器时, Redis Sentinel会告之新的主服务器地址和端口。
    一个简单的主从结构加sentinel集群的架构图如下:
    
    上图是一主一从节点,加上两个部署了sentinel的集群,sentinel集群之间会互相通信,沟通交流redis节点的状态,做出相应的判断并进行处理,这里的主观下线状态和客观下线状态是比较重要的状态,它们决定了是否进行故障转移
    可以 通过订阅指定的频道信息,当服务器出现故障得时候通知管理员
    客户端可以将 Sentinel 看作是一个只提供了订阅功能的 Redis 服务器,你不可以使用 PUBLISH 命令向这个服务器发送信息,但你可以用 SUBSCRIBE 命令或者 PSUBSCRIBE 命令, 通过订阅给定的频道来获取相应的事件提醒。
    一个频道能够接收和这个频道的名字相同的事件。 比如说, 名为 +sdown 的频道就可以接收所有实例进入主观下线(SDOWN)状态的事件。    
     二、部署  
Redis的sentinel系统可以监控主从节点,并且实现自动切换
注意:在使用sentinel监控主从节点的时候,从节点需要是使用动态方式配置的,如果直接修改配置文件,后期sentinel实现故障转移的时候会出问题。
 
节点如下:
redis主节点:192.168.1.170
redis从节点:192.168.1.171(可以有多个)
 
Sentinel节点:192.168.1.172    192.168.1.173
 
部署步骤:
1:192.168.1.170、192.168.1.171、192.168.1.172、192.168.1.173,在这四个节点上解压redis-3.0压缩包
 
2:在这四个节点上对redis进行编译,安装。
 
3:修改192.168.1.170、192.168.1.171上的redis.conf文件中的下面属性
daemonize yes
logfile "/usr/local/redis-3.0.0/log"
 
4:修改192.168.1.172、192.168.1.173上的sentinel.conf文件中的下面属性
sentinel monitor mymaster 192.168.1.170 6379 2
5:启动redis和sentinel
在192.168.1.170和192.168.1.171上分别启动reids
Redis-server //etc/redis.conf
在192.168.1.171上使用动态方式设置主节点信息
Redis-cli
slaveof 192.168.1.170 6379
在192.168.1.172、192.168.1.173上分别启动sentinel
Redis-sentinel /etc/sentinel
这样我们的集群就可以使用了
   三、sentinel的一些命令
     ① INFO
    sentinel的基本状态信息
    ②SENTINEL masters
    列出所有被监视的主服务器,以及这些主服务器的当前状态
    ③ SENTINEL slaves <master name>
    列出给定主服务器的所有从服务器,以及这些从服务器的当前状态
    ④SENTINEL get-master-addr-by-name <master name>
    返回给定名字的主服务器的 IP 地址和端口号
    ⑤SENTINEL reset <pattern>
    重置所有名字和给定模式 pattern 相匹配的主服务器。重置操作清除主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel 。
    ⑥SENTINEL failover <master name>
    当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移,但是它会给其他sentinel发送一个最新的配置,其他sentinel会根据这个配置进行更新

© 著作权归作者所有

ivan-Zhao
粉丝 10
博文 33
码字总数 29110
作品 0
深圳
程序员
私信 提问
redis 学习笔记(4)-HA高可用方案Sentinel配置

转载自:http://www.cnblogs.com/yjmyzz/p/redis-sentinel-sample.html 上一节中介绍了master-slave模式, 在最小配置:master、slave各一个节点的情况下,不管是master还是slave down掉一个...

Zero零_度
2016/08/30
45
0
Redis主从以及哨兵集群搭建(二)

Redis主从以及哨兵集群搭建 一、前言 Redis主从同步原理同MySQL的主从原理十分相似,而解决Redis单点故障的哨兵机制(sentinel)又同解决MySQL单点故障的MHA十分相似。因此我们在学习Redis时...

PowerMichael
2017/07/30
0
0
Redis笔记5-redis高可用方案

一.哨兵机制   有了主从复制的实现以后,如果想对主服务器进行监控,那么在redis2.6以后提供了一个"哨兵"的机制。顾名思义,哨兵的含义就是监控redis系统的运行状态。可以启动多个哨兵,去...

狂小白
2018/03/02
0
0
深入学习 Redis(4):哨兵

原文出处:编程迷思 前言 在 深入学习Redis(3):主从复制 中曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍...

编程迷思
2018/09/13
0
0
Redis哨兵(Sentinel)模式快速入门

更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一...

全菜工程师小辉
09/10
34
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部