博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis | Redis 哨兵模式
阅读量:4104 次
发布时间:2019-05-25

本文共 1647 字,大约阅读时间需要 5 分钟。

一、简介

针对 所产生的主节点宕机导致整个服务无法操作,需要人工手动修改配置文件选择主节点问题,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 节点宕机后无法写的问题,但是缺点在于主节点和从节点数据都是一样的,数据冗余,而且只能允许有一个主节点,中心化。而 Redis 集群能解决这个问题。

—— 完

ABOUT

公众号:【星尘Pro】

github:

推荐阅读

转载地址:http://wffsi.baihongyu.com/

你可能感兴趣的文章
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
都无代码了,还要程序员吗?
查看>>
面试想拿 10K,HR 说我只配7k?
查看>>
那些人生“开挂”的程序员,都在干什么?
查看>>
影响科学圈的那些计算机代码
查看>>
乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
查看>>
为何程序员总喜欢写技术博客,看完恍然大悟...
查看>>
假如计算机是中国人发明的,那代码应该这么写
查看>>
触目惊心:比特币到底消耗了多少能源?
查看>>
如何判断一家互联网公司要倒闭了?
查看>>
想快速上手机器学习?来看下这个 GitHub 项目!
查看>>
GitHub 标星 3.6k,一本开源的深度学习中文教程!
查看>>
9 款你不能错过的 JSON 工具
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
200页!分享珍藏很久的Python学习知识手册(附链接)
查看>>
4 岁小女孩给 Linux 内核贡献提交
查看>>
推荐几个私藏很久的技术公众号给大家
查看>>
王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
查看>>
Python 趣味打怪:147 段简单代码助你从入门到大师
查看>>
卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!
查看>>