Sentinel的目的:监视主从服务器,并在主服务器下线时自动进行故障转移

启动Sentinel

通过执行Redis安装文件中的redis-sentinel程序,可以启动一个Sentinel实例:

redis-sentinel sentinel.conf

因为Redis的Sentinel实际上就是一个运行在Sentinel模式下的Redis服务器,所以我们同样可以使用以下命令来启动一个Sentinel实例

redis-server sentinel.conf --sentinel

启动Sentinel时需要指定配置文件,该文件记录了要监视的主服务器,以及相关的配置参数。

使用Sentinel监视主从服务器以及它的从服务器

每个Sentinel实例可以监视任意多个主服务器,以及被监视的主服务器属下的所有从服务器。

Sentinel网络

多个Sentinel实例可以监视同一个主服务器,监视相同主服务器的这些Sentinel会自动地相互连接,组成一个分布式的Sentinel网络,互相通信并交换彼此关于被监视服务器的信息。

服务器下线判断

当一个Sentinel认为被监视服务器已经下线时,它会向网络中的其他Sentinel进行确认,判断该服务器是否真的已经下线;

如果下线的服务器为主服务器,那么Sentinel网络将对下线主服务器进行自动故障转移:通过将下线主服务器的某个从服务器提升为新的服务器,并让其他从服务器转为复制新的主服务器,并以此来让系统重新回到上线状态。

自动故障转移

下线主服务器重新上线

Sentinel的配置

监视配置选项

Sentinel在启动时必须指定相应的配置文件:

redis-sentinel sentinel.conf

一个Sentinel配置文件至少要包含一个监视配置选项,用户指定被监视主服务器的相关信息

sentinel monitor <name> <ip> <port> <quorum>

name:用户为被监视主服务器设置的名字;

ip:被监视主服务器的ip;

port:被监视主服务器的port;

quorum:为确认这个主服务器已下线所需要的最少Sentinel数量;

举个栗子:配置sentinel monitor hadoop000 127.0.0.1 6379 2

表示要监视的主服务器的名字为hadoop000,它的ip地址是127.0.0.1,端口号为6379,而确认这个服务器已下线最少需要两个Sentinel同意;

Sentinel可以自动发现并监视主服务器属下的所有从服务器,所以用户只需要给出主服务器的地址和端口号即可

端口配置选项

如果要在同一台机器上运行多个Sentinel实例,用户还需要通过port number选项来为每个sentinel设置不同的端口号,如果不进行设置,Sentinel默认端口号为26379;

举个栗子:

如果要在同一台机器上运行两个Sentinel实例,用户可以通过载入以下两个配置文件来分别将两个Sentinel实例的端口号设置为26379和26380:

# sentinel1.conf
port
sentinel monitor … # sentinel2.conf
port
sentinel monitor …

Sentinel配置实例

执行如下两条命令,将创建2个监视主服务器S1的sentinel实例:

$ redis-sentinel sentinel1.conf
$ redis-sentinel sentinel2.conf

其中sentinel1.conf的内容为:

port
sentinel monitor s1 127.0.0.1

而sentinel2.conf的内容为:

port
sentinel monitor s1 127.0.0.1

Redis多机功能之Sentinel的更多相关文章

  1. Redis多机功能介绍

    Redis多机功能目的:以单台Redis服务器过渡到多台Redis服务器 Redis单机在生产环境中存在的问题 1.内存容量不足 Redis使用内存来存书数据库中的数据,但是对于一台机器来说,硬件的内 ...

  2. Redis多机功能之复制

    复制的目的:创建具有相同数据库的拷贝服务器:扩展系统处理读请求的能力: 复制的定义 Redis的复制(replication)功能允许用户根据一个Redis服务器来创建任意多个该服务器的复制品,其中被 ...

  3. Redis多机功能总结

    1.通过Redis的复制功能,用户可以创建指定服务器的任意多个复制品,每个复制品服务器和被复制的原服务器拥有相同的数据: 2.通过将读请求分散给多个从服务器处理,用户可以减少主服务器在处理读请求方面的 ...

  4. Redis多机常用架构-sentinel

    哨兵经典架构 sentinel结构 哨兵工作原理 Sentinel 通过配置文件发现Master,如下: Sentinel 通过向Master发送 INFO 命令来自动获得所有Slave的地址 跟Ma ...

  5. Redis的各项功能解决了哪些问题?

    先看一下Redis是一个什么东西.官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用.同时支持string ...

  6. Redis宕机的问题

    在主从模式下宕机要分为区分来看: slave从redis宕机 ​ 在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据: ​ 如果从数据库实现了持久化,只要重新假如到主从架构中会实现增 ...

  7. Redis(十五):哨兵Sentinel

    Redis哨兵 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你 ...

  8. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  9. Redis 复制技术和高可用sentinel(哨兵模式)

    redis的复制技术和高可用(哨兵模式) 1 复制 为什么要复制 实现数据的多副本存储,从而可以实现服务的高可用 提供更好的读性能复制技术的关键点及难点 如何指定被复制对象 增量还是全量以及如何实现增 ...

随机推荐

  1. [转]phonegap 2.9 IOS Xcode 搭建环境

    phonegap 2.9 IOS Xcode 搭建环境   一:下载phoneGap2.9和安装Xcode5(目前最新版) 选择2.9是因为3.0以上坑爹版本编译神马的要在有网络情况. 二: 下载ph ...

  2. Linux中升级更新命令yum upgrade和yum update的区别

    区别 Linux升级命令有两个分别是yum upgrade和yum update, 这个两个命令是有区别的: 代码如下: yum -y update #升级所有包,同时也升级软件和系统内核 yum - ...

  3. Python 迭代删除重复项,集合删除重复项

    1. 迭代删除重复项:先排序列表项,然后通过新迭代(not in)去除重复项,分片打印 def sanitize(time_string): if '-' in time_string: splitt ...

  4. 【转】CSS浏览器兼容性与解析问题终极归纳

    1.怪异模式问题:漏写DTD声明,Firefox仍然会按照标准模式来解析网页,但在IE中会触发怪异模式.为避免怪异模式给我们带来不必要的麻烦,最好养成书写DTD声明的好习惯. 2.IE6双边距问题:在 ...

  5. jQurey基础简介

    随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery. mootools.Bindows以及国内的JSVM框架 ...

  6. Java compiler level does not match the version of the installed Java project facet. springmvc1 和 Target runtime Apache Tomcat v7.0 is not defined.

    Java compiler level does not match the version of the installed Java project facet.springmvc1 : Targ ...

  7. HashMap的实现

    HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此 ...

  8. Well, let's start everything from the very beginning.

    帝都的霾仿佛亘古不变,不知觉2015年竟已快到尾声,而我在IBM也已呆了4个月.回顾过往多遇贵人,所获颇丰.最幸运的还是自己不忘初心,仍在不断成长.继续学习. 过去的几个月一直用WordPress,搭 ...

  9. Objective-C中nil与release的区别与用法

    首先说一下他们两的作用,nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系,它对内存的释放没有什么作用:而release才是真正用于内存释放的,release后系统会将该块内存标记为可 ...

  10. win7 Android环境搭配

    Eclipse环境 第一步:下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.h ...