Redis Sentinel哨兵集群
Redis Sentinel(哨兵集群)是一种高可用的redis部署方案。在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用。
哨兵集群的功能:
- 监控:持续监测集群中的master和slave是否可用。
- 通知:通知系统管理员,集群中的部分服务不可用。
- 故障切换:若master挂掉,哨兵集群会启动故障切换,选出其中一个slave作为新的master。使用redis的应用程序也会被告知使用新的master。
- 提供配置信息:哨兵集群为redis客户提供服务发现功能,客户端访问哨兵集群,会被告知当前的master地址。
哨兵集群的分布式特性:多个哨兵进程协同工作。
多个哨兵进程的好处:
- 故障需要多个进程同时确认,降低了发现故障时出错的概率。
- 部分哨兵进程挂掉后,集群同样可以维持工作,从而使系统更加健壮。
运行哨兵的命令
redis-sentinel /path/to/sentinel.conf
或者
redis-server /path/to/sentinel.conf --sentinel
哨兵集群的配置文件必须存在,且是可写的。
哨兵集群中的各个redis间默认使用26379端口来通信。
部署哨兵集群之前之前必须明确:
- 至少有三台redis才能保证系统的健壮
- 三台或三台以上redis必须部署在不同的计算机或者虚拟机中,从而降低各个redis同时挂掉的概率
- 哨兵+ redis分布式系统不保证承认写过程中保留故障,由于Redis使用异步复制。然而,有一些方法来部署哨兵,使窗口失去写入限制到某些时刻,而有其他不太安全的方法来部署它。
- redis客户端需要支持哨兵集群
哨兵集群的配置
案例1:
port 5000
sentinel monitor mymaster 127.0.0.1
sentinel down-after-milliseconds mymaster
sentinel failover-timeout mymaster
sentinel parallel-syncs mymaster
案例2
sentinel monitor resque 192.168.1.3
sentinel down-after-milliseconds resque
sentinel failover-timeout resque
sentinel parallel-syncs resque
第一行配置的详解:
sentinel monitor <master-group-name> <ip> <port> <quorum>
案例1中,port5000是指sentinel工作的端口是5000
监控名为mymaster的哨兵集群,地址为 127.0.0.1 端口为6379 ,2表示两个哨兵发现master不可用才发起故障切换.
案例2中,监控名为resque的哨兵集群,地址为192.168.1.3 端口为6380,4个哨兵发现master不可用才能发起故障切换。
注意:故障切换的两个条件:
1.quorum个哨兵发现master不可用
2.半数以上的哨兵可用
关于sentinel的一些常用命令:
1.首先通过redis-cli 登录
redis-cli -p 5000
2.查看master信息,其中mymaster是哨兵集群的名称
sentinel master mymaster
3.查看slaves信息
SENTINEL slaves mymaster
4.查看其它哨兵信息
SENTINEL sentinels mymaster
5.查看master的地址
SENTINEL get-master-addr-by-name mymaster
6.其它
1.PING //测试sentinel是够正常,正常的话返回PONG 2.sentinel masters //返回哨兵集群监控的master列表和状态 3.SENTINEL MONITOR<name><ip><port><quorum>//运行时增加监控对象 4.SENTINEL REMOVE<name>//删除所监控的master 5.SENTINEL SET<name><option><value> //修改配置
增加哨兵
1.配置sentinel文件
2.执行启动命令
sentinel sentinel.conf
删除哨兵
1.杀死哨兵进程
2.所有其他的哨兵执行
sentinel reset mastername
3.查看各个哨兵监测的master
sentinel master mastername
删除master的slave,更改master的配置文件后对各个哨兵执行
sentinel reset mastername
工作原理:
首先来了解哨兵集群中两个重要的基本概念:
SDOWN(主观宕机):哨兵实例的PING命令没有返回+PONG,-LOADING error,-MASTERDOWN error。
ODOWN(客观宕机):足够数量(大于等于sentinel.conf文件中的配置)的哨兵实例判断出发生了SDOWN。
发生客观宕机后开始故障切换。
哨兵集群可以自动发现各个哨兵实例以及redis master的slave
Redis Sentinel哨兵集群的更多相关文章
- docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接
花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...
- CentOS7 配置 Redis Sentinel主从集群配置
Redis Sentinel主从集群 环境.准备 slave配置 sentinel配置 测试 C#连接Redis Sentinel 1.环境.准备 单实例3台CentOS7服务器,IP地址.: 192 ...
- Redis Sentinel:集群Failover解决方案(转载)
本文转载自:http://shift-alt-ctrl.iteye.com/blog/1884370 文中的配置例子,还有failover过程中触发的订阅事件具有很好的参考价值. Redis sent ...
- redis的哨兵集群,redis-cluster
#主从同步redis主从优先1.保证数据安全,主从机器两份数据一主多从2.读写分离,缓解主库压力主redis,可读可写slave身份,只读 缺点1.手动主从切换假如主库挂了,得手动切换master ...
- redis:哨兵集群配置
最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...
- Redis Sentinel分布式集群
helm部署Redis哨兵分布式集群 Redis Sentinel集群 介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客 ...
- Redis主从&哨兵集群搭建
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...
- 三千字介绍Redis主从+哨兵+集群
一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...
- 走进Redis:哨兵集群
为什么需要哨兵 在 Redis 的主从库模式中,如果从库发生了故障,用户的操作是可以继续进行的,因为写操作是只在主库中进行的.那么,如果主库发生了故障,用户的操作将会收到影响.这时候可能会需要选择一个 ...
随机推荐
- JDK1.7 ConcurrentHashMap 源码浅析
概述 ConcurrentHashMap是HashMap的线程安全版本,使用了分段加锁的方案,在高并发时有比较好的性能. 本文分析JDK1.7中ConcurrentHashMap的实现. 正文 Con ...
- [Android UI] shape和selector的结合使用
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector.可以这样说,shape和 ...
- 家族(codevs 1073)
题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和 ...
- (*p)++和*(p++)和*p++的区别
* 和++优先级是同一级别,同一级别按照从右往左的顺序计算 所以: *p++等价于*(p++) #define debug(x) cout << #x << " a ...
- Android之自定义ViewGroup
概述 在写代码之前,我必须得问几个问题: 1.ViewGroup的职责是啥? ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属性, ...
- .net学习笔记----利用System.Drawing.Image类进行图片相关操作
C#中对图片的操作主要是通过System.Drawing.Image等类进行. 一.将图片转换为字节流 /// <summary> /// 图片处理帮助类 /// </summary ...
- Ubuntu安装dos2unix工具
Ubuntu下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有).但是有一个替代工具——tofrodos , 下面 ...
- UML中的stereotype
在使用rose的时候.rose的类里面有个stereotype的选项.选择了不同的选项类会呈现不同的图形效果.这里对stereotype做一点总结, Stereotyp英文的原意是印刷中的铅字.比如, ...
- 1、揭秘通用平台的 HttpClient (译)
原文链接:Demystifying HttpClient APIs in the Universal Windows Platform 正打算翻译这篇文章时,发现园子里已经有朋友翻译过了,既然已经开始 ...
- android ndk环境配置(转)
转载自:http://jingyan.baidu.com/article/3ea51489e7a9bd52e61bbac7.html android sdk 更新到 r23 时,eclipse 自带 ...