问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Redis 学习总结(3) Redis 哨兵模式

发布网友 发布时间:2022-09-09 13:30

我来回答

1个回答

热心网友 时间:2024-11-02 08:09

在实际开发中不会仅仅部署一个 Redis 服务器,为了获得高可用,Redis 哨兵模式 则是高可用的一种选择。

本文先介绍下 哨兵模式,再介绍了如何在 springboot 项目中使用。

这意味着使用 Sentinel (哨兵模式),您可以创建一个 Redis 部署,它可抵抗某些类型的故障(进行故障迁移)而无需人工干预。

它有这些功能:

Sentinel 的分布式特性
Redis Sentinel 是一个分布式系统,多个 Sentinel 进程协同工作,有这些优势:

部署前需要了解:

三个节点的基本配置

法定人数和仲裁
在配置 哨兵模式时,要指定一个 quorum,它可理解为“法定人数”。
假设有3 个 哨兵,法定人数为2。那么:

哨兵和副本的自动发现
Sentinel 与其他 Sentinel 保持连接,以便相互检查彼此的可用性并交换消息。

但是,您不需要在您运行的每个 Sentinel 实例中配置其他 Sentinel 地址的列表,因为 Sentinel 使用 Redis 实例的 Pub/Sub 功能来发现正在监视相同主节点和副本的其他 Sentinel。

类似地,您不需要配置附加到主服务器的副本地址在哪里,因为 Sentinel 会通过查询 Redis 自动发现它们。

参考我的另一篇文章:

一般需要三个节点,每个节点有一个 redis 和一个哨兵。

下面再分别描述。

我这里按三个 节点,先配置 redis 的主从复制。1个节点作为 master ,2个副本。

配置节点1:master
这里的 redis 作为 master 主redis,其他两个节点作为从节点。
我的文件夹名字叫 box1,这里编辑一个 box1/redis.conf 文件,主要配置内容如下:

配置节点2:副本
编辑一个 box2/redis.conf 文件,主要配置内容如下:

配置节点3:副本
编辑一个 box3/redis.conf 文件,主要配置内容如下:

分别启动这三个redis
命令行执行 redis-server ,并指定 配置文件的路径参数。

如何查看“主从复制”是否配置成功?
使用 info replication 命令,操作如下:

副本节点设置为只读?
从 Redis 2.6 开始,副本已被默认设置为 只读,无需额外配置。.

一般情况下,至少会需要三个哨兵对redis 进行监控,我们可以通过修改端口启动多个sentinel 服务。

第一个哨兵:
哨兵的 默认端口是 26379 ,这里不改。

第二个哨兵:
修改哨兵端口。

第三个哨兵:
修改哨兵端口。

启动哨兵
使用 redis-sentinel 命令,分别启动这三个哨兵

哨兵的自动发现
当三个哨兵都启动后,在各个哨兵的打印日志里可以看到, 三个哨兵已互相发现了彼此的存在 。

至此,配置完毕了,我们有三个 redis,和三个哨兵,看下截图。

模拟 master 宕机
按 ctrl+c 停止 master ,其位于 6379 。停止后,从日志可以看到,哨兵和 redis副本先努力继续连接 6379,反复几次失败后,开始选举出新的 master。截图如下:

至此,配置完毕。

我们看下 springboot 项目的客户端如何配置 以访问 哨兵模式的 redis。

Redis 哨兵支持
对于处理高可用Redis,Spring Data Redis 已经支持Redis Sentinel,使用RedisSentinelConfiguration,如下例所示:

Jedis 和 Lettuce 两种 redis 驱动都可以支持。

RedisSentinelConfiguration 也可以用可以 通过 PropertySource 来设置,它允许您设置以下属性:

配置application.yml

比如我这里修改我的 application.yml 文件如下:

我的配置文件示例: https://github.com/vir56k/java_demo/tree/master/redis-sentinel
我的 springboot 配置实例: https://github.com/vir56k/java_demo/tree/master/redis-sentinel/springboot_redis_demo

Redis官网 sentinel 介绍
https://redis.io/topics/sentinel

spring-data/data-redis
https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis:sentinel

https://www.cnblogs.com/jaycekon/p/6237562.html

END

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机垃圾清理使用哪个软件最好? 适合新手用的手机清理软件 苹果手机怎么把号码黑名单里? VUE视频相机使用教程 教你简单几步拍出大片 如何使用佳能相机录像 相机录像具体操作教程分享 羊头捣蒜做法图解 服刑期间领取养老金是否构成犯罪 狗狗胰腺炎最怕的三种蔬菜是什么 怎么喂食 银行卡给专业的贷款公司做流水有风险吗? 电话号可直接贷款吗,他知道我的实名电话,还用paos机刷了我的银行卡一... redis日志配置 Redis配置文件参数说明 springboot--redis配置 Redis使用——Redis的redis.conf配置注释详解(三) 银行单日限额多久解除 如何上好一节小学体育课 怎样上好一节体育课的技巧 如何上好一年级体育课 西南交通大学集成电路工程专硕研究生怎么样? 身体痣的位置与命运 为什么要规定投资性主体合并财务报表的豁免 请问开机遇到这种情况怎么解决? 在大学校园内发现有人互殴,遇到这种情况该如何正确处理? 认识生字小牛的教案 老牛和小牛的道理是什么? 通过学习小牛站起来,我认识了( )的小牛 小牛站起来了 这个故事告诉我们什么道理 高级工工勤岗位员工转至管理岗位一年后可以成为九级职员吗? 西南财经大学天府学院2022年助学金第二批发放时间 关于描写大雁的古诗句 启动redis的时候指定配置文件启动 澳大利亚的采矿业有什么缺点? 澳大利亚采矿业的优缺点? 隔几天就会梦见噪音,一下子很清醒,半睁开眼睛,又不禁闭上了,又努力睁... agent软件无网会监控吗 海州香薷的介绍 “寻欢作乐”这个词的解释是什么? 请哪位大侠解释“寻欢作乐”的正确成语解释 女人梦见逃跑躲藏是什么征兆 晚上做梦梦到曾经的领导把人头藏匿于罐子被我发 梦到猫在说话,还是四只,一开始藏匿在我家里,后来被发现了 公务员套改细则 关于警察职务套改 如何加入发布软文到网站和公众号?求解答 保险交够了十年取一部分对业务员有什么影响 年薪50万属于什么水平 税前年薪50万税后多少 胡萝卜黄瓜炒玉米的家常做法怎么做好吃 梦见去逛街时看见一条黑色的大蟒蛇在动,而且有规律的发出叫声,有什么含 ... 公务员工资怎么算? 12123加分答题在哪里答 我做了一个很普通的梦,就是梦见我在学校里上自习,但奇怪的是梦做到一半...