Redis Sentinel(哨兵集群)是一种高可用的redis部署方案。在集群中的redis-master服务挂掉时,无需人为干预,即可通过哨兵集群的自我调整,实现redis服务的持续可用。

哨兵集群的功能:

  1. 监控:持续监测集群中的master和slave是否可用。
  2. 通知:通知系统管理员,集群中的部分服务不可用。
  3. 故障切换:若master挂掉,哨兵集群会启动故障切换,选出其中一个slave作为新的master。使用redis的应用程序也会被告知使用新的master。
  4. 提供配置信息:哨兵集群为redis客户提供服务发现功能,客户端访问哨兵集群,会被告知当前的master地址。

哨兵集群的分布式特性:多个哨兵进程协同工作。

多个哨兵进程的好处:

  1. 故障需要多个进程同时确认,降低了发现故障时出错的概率。
  2. 部分哨兵进程挂掉后,集群同样可以维持工作,从而使系统更加健壮。

运行哨兵的命令

redis-sentinel /path/to/sentinel.conf

或者

redis-server /path/to/sentinel.conf --sentinel

哨兵集群的配置文件必须存在,且是可写的。

哨兵集群中的各个redis间默认使用26379端口来通信。

部署哨兵集群之前之前必须明确:

  1. 至少有三台redis才能保证系统的健壮
  2. 三台或三台以上redis必须部署在不同的计算机或者虚拟机中,从而降低各个redis同时挂掉的概率
  3. 哨兵+ redis分布式系统不保证承认写过程中保留故障,由于Redis使用异步复制。然而,有一些方法来部署哨兵,使窗口失去写入限制到某些时刻,而有其他不太安全的方法来部署它。
  4. 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哨兵集群的更多相关文章

  1. docker搭建redis主从集群和sentinel哨兵集群,springboot客户端连接

    花了两天搭建redis主从集群和sentinel哨兵集群,讲一下springboot客户端连接测试情况 redis主从集群 从网上查看说是有两种方式:一种是指定配置文件,一种是不指定配置文件 引用地址 ...

  2. CentOS7 配置 Redis Sentinel主从集群配置

    Redis Sentinel主从集群 环境.准备 slave配置 sentinel配置 测试 C#连接Redis Sentinel 1.环境.准备 单实例3台CentOS7服务器,IP地址.: 192 ...

  3. Redis Sentinel:集群Failover解决方案(转载)

    本文转载自:http://shift-alt-ctrl.iteye.com/blog/1884370 文中的配置例子,还有failover过程中触发的订阅事件具有很好的参考价值. Redis sent ...

  4. redis的哨兵集群,redis-cluster

    #主从同步redis主从优先1.保证数据安全,主从机器两份数据一主多从2.读写分离,缓解主库压力主redis,可读可写slave身份,只读   缺点1.手动主从切换假如主库挂了,得手动切换master ...

  5. redis:哨兵集群配置

    最少配置1主2从3哨兵 一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...

  6. Redis Sentinel分布式集群

    helm部署Redis哨兵分布式集群 Redis Sentinel集群 介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客 ...

  7. Redis主从&哨兵集群搭建

    主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...

  8. 三千字介绍Redis主从+哨兵+集群

    一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...

  9. 走进Redis:哨兵集群

    为什么需要哨兵 在 Redis 的主从库模式中,如果从库发生了故障,用户的操作是可以继续进行的,因为写操作是只在主库中进行的.那么,如果主库发生了故障,用户的操作将会收到影响.这时候可能会需要选择一个 ...

随机推荐

  1. Hudson可扩展持续集成引擎

    参考文章:http://blog.csdn.net/dazhi_100/article/details/11629133 极限编程中一项建议实践便是持续集成,持续集成是指在开发阶段,对项目进行持续性自 ...

  2. sublime text 3 使用过程总结记录

    自定义的设置: "save_on_focus_lost": true //在文件失去焦点的时候自动保存

  3. Linux防火墙规则的查看、添加、删除和修改

    这里只列出比较常用的参数,详细的请查看man iptables 1.查看 iptables -nvL –line-number -L查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表 ...

  4. gitlab+TortoiseGit中使用SSH

    1.在文件夹空白位置右键打开"Git Bash" 2.按 https://gitlab.yourhost.com/help/ssh/ssh.md 中的说明,输入命令   ssh-k ...

  5. h5 canvas 小球移动

    h5 canvas 小球移动 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  6. Hark的数据结构与算法练习之快速排序

    前言 快速排序是最常见,也是面试中最容易考的排序方法,这里做一下总结 算法说明 其实这里说的很清楚了:http://blog.csdn.net/morewindows/article/details/ ...

  7. 简单几何(点的位置) POJ 1584 A Round Peg in a Ground Hole

    题目传送门 题意:判断给定的多边形是否为凸的,peg(pig?)是否在多边形内,且以其为圆心的圆不超出多边形(擦着边也不行). 分析:判断凸多边形就用凸包,看看点集的个数是否为n.在多边形内用叉积方向 ...

  8. 暴力+降复杂度 BestCoder Round #39 1002 Mutiple

    题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...

  9. BZOJ3941 : [Usaco2015 Feb]Fencing the Herd

    若所有点同侧则表明将各个点带入直线解析式ax+by-c后得到的值均同号等价于最大值和最小值同号考虑CDQ分治,每一步分治的过程中求出上下凸壳,然后三分答案即可时间复杂度$O(n\log^2n)$ #i ...

  10. BZOJ1401 : Hexagon

    这题显然是一个最小斯坦纳树的模型,直接上模板即可,就是正六边形比较恶心. #include<cstdio> #include<cstring> #include<algo ...