Redis | Redis 哨兵模式

一、简介

针对 Redis 主从复制所产生的主节点宕机导致整个服务无法操作,需要人工手动修改配置文件选择主节点问题,Redis 哨兵模式则是一种改进方式。

我们可以运行多个哨兵,每个哨兵会向其他哨兵,节点定时发送消息,确认对方是否活着,而且哨兵的作用如下:

1、管理 Redis 服务器,检查 Master 和 Slave 是否正常。
2、Redis 节点出现问题,哨兵会向管理者发送通知。
3、Master 不能工作时,会将其中一个 Slave 选举为 Master。

他的原理如下:

1、每隔一定时间监听Master节点,获取整个Redis集群节点列表。
2、多个哨兵监听一个Master,多个哨兵之间通过发布订阅在彼此之间建立连接。
3、单个哨兵会向 Master 节点发送 Ping 命令,如果认为该 Master 节点为不可用,就会让其他哨兵进行确认 Master 是否可用,当配置个数的数量的哨兵都认为 Master 不可应,则重新选择 Master。

二、示例

下面,将介绍如何搭建哨兵模式,首先,我们需要准备三台服务器,在我们所安装的 Redis 目录下,有一个sentinel.conf 配置文件,这个文件可以配置哨兵模式。

1、启动 Redis 节点

首先需要修改 从节点的 Redis 的配置文件,确认主从节点,主节点不用修改。

vim redis.conf 

主节点密码

masterauth 123456

主节点地址

slaveof 10*.1*.*.11 6379

修改完成后启动所有 Redis 节点

/usr/local/bin/redis-server ./redis.conf
2、启动哨兵节点

我们可以先把这个配置文件复制到我们启动哨兵的文件夹,这个文件夹一般可以是启动 Redis 的文件夹,统一管理

cp /usr/local/redis/redis-5.0.7/sentinel.conf ./

需要修改的配置文件如下,三台节点一起修改

vim sentinel.conf

后台运行模式

daemonize yes

Redis 主节点的地址,这里的 2 是当 2 个哨兵认为主节点不可用,就重新选举

sentinel monitor mymaster 123.*.*.1 6379 2

Redis 主节点的面

sentinel auth-pass mymaster 123456

启动所有哨兵

/usr/local/bin/redis-sentinel sentinel.conf

启动完成后我们可以查看所有服务器的结果
在这里插入图片描述

3、测试结果

我们可以随机进入一台 Redis 节点查看他的角色及一些基本信息

/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 -a '123456'
info replication

在这里插入图片描述
我们可以把主节点停掉,看看效果,我们可以发现当前节点已经变成了主节点
在这里插入图片描述
我们可以再次尝试启动刚才被我们停掉的节点,可以发现他已经自动变成了从节点,我们可以查看配置文件 redis.conf,会发现 Redis 已经帮我们修改了配置文件里面的节点配置信息。

注意
1、需要在 redis.conf 配置 Redis 节点的密码,否则停掉的节点再次启动,无法同步当前主节点的数据。
2、如果之前运行过哨兵模式,需要注意sentinel.conf 里面的配置是否有系统自动配置的主节点,否则会造成干扰,哨兵模式无法成功部署,解决方式是在新的 sentinel.conf 配置文件上从新配置
3、必须先运行 Redis 节点再运行哨兵

masterauth <master-password>
三、思考

哨兵模式解决了主从复制 Master 节点宕机后无法写的问题,但是缺点在于主节点和从节点数据都是一样的,数据冗余,而且只能允许有一个主节点,中心化。而 Redis 集群能解决这个问题。

—— 完

ABOUT

公众号:【星尘Pro】
github:https://github.com/huangliangyun

推荐阅读
史上最全,最完美的 JAVA 技术体系思维导图总结,没有之一!
全站导航 | 文章汇总!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星尘Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值