Redis哨兵模式(自动选取主机的模式)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis哨兵模式(自动选取主机的模式)

概述

网络异常,图片无法展示
|

哨兵模式主要通过redis-sentinel进行配置

网络异常,图片无法展示
|

网络异常,图片无法展示
|

比如我们有一个主机6379,还有两个从机6380,6381,不仅要配置基本的一主多从,还要单独的配置一个哨兵进程,需要不定时发请求判断我们三个服务器是否存活,哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个redis实例(服务),如果没有回复响应,那么就是断开连接宕机
这里的哨兵有两个作用
1 通过发送命令,让Redis服务器返回监控它的运行状态,包括主机和从机(主服务器和从服务器)
2 当哨兵检测到master宕机,会自动将slave变为master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机
然而一个哨兵进程对Redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控,各个哨兵直接还会进行检测,这样就形成了多哨兵模式(集群),起步就是6个进程 3哨兵 3服务器 一主二从

2上述例子是一个单机哨兵,如果这个哨兵宕机就无法保证我们的服务正常运行,正常情况下我们也会给哨兵配置集群,就是以下流程图

网络异常,图片无法展示
|

3 哨兵模式的工作流程

假设服务器宕机,哨兵1检测到这个结果,系统并不会马上进行failover过程,仅仅是哨兵1主观的认为主服务器不是决定性的(一个哨兵的判断不会立马决定结果),这个现象称为主观下线,当后面的哨兵也检测到主服务器不可用,并且数量达到一定值的时候,那么哨兵就会判断这个主服务器宕机, 这时哨兵直接会进行选票(投票的发起者是随机的),投票的结果由一个哨兵发起,进行failover(故障移除操作),切换成功后,就会通过发布订阅(比如给从机1投了一票,给从机2投了两票,那么从机2就会胜出称为新的主机),让各个哨兵把自己监控的从服务器实现切换主服务器(投票胜出的那个),这个过程称为客观下线
哨兵模式的投票是一个算法

4 配置哨兵模式

首先声明:现在我们主从复制的模式是一主(6379)二从(6380,6381),而不是层层链入
1 配饰哨兵配置文件(sentinel.conf),因为哨兵启动的时候会检测这个文件

网络异常,图片无法展示
|

#注意单词不要写错
#配置的哨兵不止于此,但是这个 最核心基本的配置
#哨兵    监控     被监控的名称  主机的ip和端口
#后面这个数字1,代表主机挂了,哨兵投票看让谁接替成为新的主机,票数最多的,就会成为主机
sentinel moitor myredis 127.0.0.1 6379 1
2 配置完成之后启动哨兵(redis-sentinel)

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

3 这样我们的哨兵模式就启动成功了,上图所示,哨兵模式正在检测127.0.0.1 6379这个主机,还检测到6380和6381两台从机,主机里面有1票,是它们的老大

5 测试主机宕机会怎么样

 1 首先给主机set一个值 set k1 v1然后宕机

网络异常,图片无法展示
|

2 需要等待哨兵模式一会,因为它要发送信息监控服务器等待响应,等哨兵模式得到监控信息,此时查看哨兵模式,发现79宕机,进行数据迁移然后选举新的主机

网络异常,图片无法展示
|

3 此时查看6380这个从机,发现它还是从机

网络异常,图片无法展示
|

4 查看我们的6381,发现它自动成为了主机

网络异常,图片无法展示
|

哨兵模式也有说明,6379以及shutdown,经过哨兵们的选举6381成为我们新的主机

网络异常,图片无法展示
|

结论:如果master节点断开了,就会从从机中随机选出一个从机成为新的主机(这里面有一个投票算法)

哨兵日志的几个重要部分,故障转移(数据迁移)failover,主机宕机down,选举推送新的主机

网络异常,图片无法展示
|

6 那么,现在把6379这个主机连回来有用吗?

网络异常,图片无法展示
|

网络异常,图片无法展示
|

1 答案是没用的,虽然它还是一个主机,但是其他是光杆司令,没有任何从机,需要我们手动去配置
2 查看哨兵日志,convert(转换)6379转换成为了6381的从机

网络异常,图片无法展示
|

3 再次查看6381的信息,发送它有两个从机6379,6380,所以就算6379这个曾经的主机回来,也只能给新的主机做从机

网络异常,图片无法展示
|

4 查看曾经的主机6379,也只能给新的主机6381做从机

如果主机此时正常连接回来了,只能归并到新的从机下,当作新的主机的从机,这就是哨兵模式的规则

网络异常,图片无法展示
|

7 哨兵模式的优点和缺点

1 优点
1 哨兵模式,基于主从复制,所有的主从配置的优点,它全都有,而且它还会自动配置
2主从可以切换,数据可以转移,系统的可用性就会更好(高可用)
3 哨兵模式就是主从模式的升级版,从手动升级到自动,更加完善健壮
2 缺点
1 Redis不好在线扩容的,如果集群容量一旦到达上限(集群的容量满了),在线扩容就非常麻烦(可以做横向扩展)
2 实现哨兵模式的配置其实是很麻烦的,里面有很多选择,我们配置的只是一个最基础的

8 哨兵模式的全部配置

1 哨兵模式的端口

网络异常,图片无法展示
|

2 定义哨兵的工作目录

网络异常,图片无法展示
|

3 默认主机的节点

网络异常,图片无法展示
|

4 配置主机密码,如果没有可以不进行配置

网络异常,图片无法展示
|

5 默认的延迟操作,也就是我们等待哨兵监控服务器等待的时间,默认30s,可以不用配置

网络异常,图片无法展示
|

6 故障转移的操作,并行同步的时间

网络异常,图片无法展示
|

7 设置一些其他操作,比如说默认的三分钟的故障转移,如果觉得时间长,可以进行更改

网络异常,图片无法展示
|

8 执行脚本 出现故障可以发送到我们的邮件或者服务器上面,来通知管理员(需要编写sheet脚本)

网络异常,图片无法展示
|

9 主节点改变的时候,脚本被调用

网络异常,图片无法展示
|

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
缓存 NoSQL Java
flea-cache使用之Redis集群模式接入
【1月更文挑战第2天】本篇博文介绍笔者 flea-framework 下的 flea-cache 模块中的Redis集群模式接入
41 1
flea-cache使用之Redis集群模式接入
|
4月前
|
监控 负载均衡 NoSQL
Redis之哨兵模式
Redis之哨兵模式
|
4月前
|
存储 监控 NoSQL
Redis 高可用之主从模式
上一节RDB和AOF持久化机制提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力。但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求。对于整体服务而言这是无法容忍的,因此我们可以使用多个服务器实例,在一个实例宕机中断时,另外的服务器实例可以继续对外提供服务,从而不中断业务。Redis 是如何做的呢?Redis 做法是**增加冗余副本**,**将一份数据同时保存在多个实例**上。那么如何保存各个实例之间的数据一致性呢?
46 0
Redis 高可用之主从模式
|
4月前
|
消息中间件 NoSQL Redis
Redis高可用之哨兵模式(第二部分)
Redis高可用之哨兵模式(第二部分)
|
4月前
|
监控 NoSQL 算法
Redis之哨兵模式
【1月更文挑战第8天】哨兵模式说白点就是:自动选举老大的模式。
196 6
|
6天前
|
监控 NoSQL Redis
Redis的哨兵模式详解
Redis的哨兵模式详解
25 0
|
4月前
|
NoSQL Linux 网络安全
解决在Linux中进行redis的主从复制时出现的从机可以获取到主机的信息,主机获取不到从机的信息~
解决在Linux中进行redis的主从复制时出现的从机可以获取到主机的信息,主机获取不到从机的信息~
|
4月前
|
缓存 监控 NoSQL
Redis的哨兵模式是什么?它的作用是什么?
Redis的哨兵模式是什么?它的作用是什么?
167 0
|
4月前
|
存储 负载均衡 NoSQL
Redis的集群模式是什么?它的优点和缺点是什么?
Redis的集群模式是什么?它的优点和缺点是什么?
53 0
|
4月前
|
NoSQL Java Redis
Redis的发布-订阅模式是什么?它的应用场景是什么?
Redis的发布-订阅模式是什么?它的应用场景是什么?
62 0