Redis多机功能之Sentinel
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的更多相关文章
- Redis多机功能介绍
Redis多机功能目的:以单台Redis服务器过渡到多台Redis服务器 Redis单机在生产环境中存在的问题 1.内存容量不足 Redis使用内存来存书数据库中的数据,但是对于一台机器来说,硬件的内 ...
- Redis多机功能之复制
复制的目的:创建具有相同数据库的拷贝服务器:扩展系统处理读请求的能力: 复制的定义 Redis的复制(replication)功能允许用户根据一个Redis服务器来创建任意多个该服务器的复制品,其中被 ...
- Redis多机功能总结
1.通过Redis的复制功能,用户可以创建指定服务器的任意多个复制品,每个复制品服务器和被复制的原服务器拥有相同的数据: 2.通过将读请求分散给多个从服务器处理,用户可以减少主服务器在处理读请求方面的 ...
- Redis多机常用架构-sentinel
哨兵经典架构 sentinel结构 哨兵工作原理 Sentinel 通过配置文件发现Master,如下: Sentinel 通过向Master发送 INFO 命令来自动获得所有Slave的地址 跟Ma ...
- Redis的各项功能解决了哪些问题?
先看一下Redis是一个什么东西.官方简介解释到:Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用.同时支持string ...
- Redis宕机的问题
在主从模式下宕机要分为区分来看: slave从redis宕机 在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据: 如果从数据库实现了持久化,只要重新假如到主从架构中会实现增 ...
- Redis(十五):哨兵Sentinel
Redis哨兵 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你 ...
- Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置
0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...
- Redis 复制技术和高可用sentinel(哨兵模式)
redis的复制技术和高可用(哨兵模式) 1 复制 为什么要复制 实现数据的多副本存储,从而可以实现服务的高可用 提供更好的读性能复制技术的关键点及难点 如何指定被复制对象 增量还是全量以及如何实现增 ...
随机推荐
- Hive(四):c#通过odbc访问hive
hive odbc 驱动配置成功后,通过c#访问就变得比较简单了,分为查询与更新操作,直接附上测试代码.在此过程中需要注意c#工程编译的目标平台 读写访问代码示例: public class Hive ...
- [转] matlab saveas 和imwrite的区别
http://hi.baidu.com/curbzz/item/04a69e805fc334e3e596e035 saveas(handle,['目录','文件名']) 如果只有一幅图,handle设 ...
- lucene之排序、设置权重、优化、分布式搜索(转)
lucene之排序.设置权重.优化.分布式搜索(转) 1. 基本应用 using System;using System.Collections.Generic;using System.Text;u ...
- (转)扩展jquery easyui datagrid 之动态绑定列和数据
本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...
- android学习笔记27——Activity
Activity配置==> android应用程序要求所有的应用程序组件都需要进行显示配置后,才可正常使用.包括:Activity.Service.BroadCastReceiver.Conte ...
- java连接mongodb的一个奇葩问题及奇葩解决方式
昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ...
- 使用 HTML5 Shiv 让 IE 支持 HTML5
HTML5 Shiv 使用 html5.js 必须在页面head元素内调用(因为 IE 必须在元素解析前知道这个元素,所以这个 JS 文件不能在页面底部调用.) 作者已经把js文件放在Google c ...
- 黄聪:C#设置窗体打开位置(在显示器的右下角打开)
; ; this.SetDesktopLocation(x, y); 注释:System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Size.Wid ...
- 26种提高ASP.NET网站访问性能的优化方法 .
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池 ...
- onclick事件对动态参数类型为字符串的处理
onclick="solveRow("'+row.isbesolve+'")"