我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Sentinel如何在Redis中使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Sentinel如何在Redis中使用

今天就跟大家聊聊有关Sentinel如何在Redis中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1、sentinel monitor

用法:

sentinel monitor master-name  ip port quorum

其中,master-name是主节点的名称,ip,port不用解释,是主节点的地址信息。

   最后的quorum是判断主节点最终不可达所需要的票数。这个值越大,判断越可信,这个值越小,判断越不可信,一般这个数字取的是sentinel节点数目的一半+1.同时,该值还与sentinel节点的领导者选举有关,至少要有max(quorum,num (sentinel)/2+1)个节点参与选举,才能选出领导者sentinel,从而完成故障转换。例如有5个sentinel节点,quorum设置为4,那么num(sentinel)/2+1=3,max函数返回4,最少要有4个节点才可以进行领导者选举。

2、sentinel  down-after-milliseconds 

用法如下:

sentinel  down-after-milliseconds master-name  times

该参数表示超过了配置的时间,没有收到有效的回复,则判断sentinel节点不可达,其中time的单位是毫秒。其中master-name为sentinel节点的名称。

3、sentinel parallel-syncs

用法:

sentinel parallel-syncs master-name nums

4、sentinel failover-timeout

用法:

sentinel failover-timeout master-name times

failover-timeout通常翻译成故障转移超时时间(以下简称FT),但实际上它作用于故障转移的各个阶段。它的作用:

a、如果redis sentinel对一个主节点的额故障转移失败,那么下次在对该主节点做故障转移的起始时间是FT的2倍

b、对于新选出来的主节点,执行slaveof no one的时候(因为原来它是个从库),如果出现失败,当超过FT时,则故障转移失败。

c、选出新的主节点后,redis会在新主节点上执行info命令,如果执行时间超过FT时,则故障转移失败

d、如果其余从节点和新的主节点,在重新建立复制关系的时候,如果超过了FT的时间,那么故障转移失败。

5、sentinel auth-pass

用法:

sentinel auto-pass master-name password

从节点sentinel上配置主节点的密码,从而保证可以和主节点进行通信

6、sentinel notification-scripts

用法:

sentinel notification-scripts master-name scripts-path

7、sentinel client-reconfig-scripts

用法:

sentinel client-reconfig-scripts master-name scripts-path

 在故障转移结束后,会触发对应路径的脚本,并向脚本发送故障转移结果的相关参数。例如配置邮件或者报警。

参数6和参数7中需要注意,配置的脚本必须有执行权限,同时必须包含shell脚本头,脚本的最大执行时间不能超过60s,不过在一般的线上环境,通常不会用这个参数来配置相关脚本。

Redis Sentinel同时监控多个Redis节点

   这个还是比较简单的,只需要在sentinel的配置文件中写上多个节点的名称,其他参数也区分开来即可。例如:

sentinel monitor node1 IP1 port1 quorum1sentinel client-reconfig-scripts node1 scripts-path2--------sentinel monitor node2 IP2 port2 quorum2sentinel client-reconfig-scripts node2 scripts-path3

Redis Sentinel 动态配置调整

   我们可以使用sentinel set param value的方法来动态的设置sentinel的参数,这里有几点需要注意:

sentinel set命令只对当前sentinel节点有效

sentinel set命令如果执行成功,会立即刷新配置文件,而不需要我们手动config rewrite

建议所有sentinel节点的配置尽可能一致,可以提高故障转移的有效性

sentinel对外不支持config命令

Redis Sentinel部署原则

a、sentinel节点不应该部署在一台物理机器上。这个比较容易理解

b、部署至少三个且奇数个sentinel节点。注意,这里的奇数个不是为了投票,而是因为偶数个和奇数个的投票效果一致,奇数个可以节省一个节点。

c、有条件的情况下,尽量使用sentinel节点和redis节点一对一的方式部署,不要使用同一套sentinel来管理多个redis主节点。

相关的sentinel API:

sentinel masters

展示所有被监控的主节点状态以及相关的统计信息

[root@VM_48_10_centos ~]# redis-cli -p 26379127.0.0.1:26379> sentinel masters1)  1) "name"    2) "mymaster"    3) "ip"    4) "127.0.0.1"    5) "port"    6) "6379"    7) "runid"    8) "2ba04c1d8f837f2e419f6f5390c0d5938a6895f4"    9) "flags"   10) "master"   11) "pending-commands"   12) "0"   13) "last-ping-sent"   14) "0"   15) "last-ok-ping-reply"   16) "377"   17) "last-ping-reply"   18) "377"   19) "down-after-milliseconds"   20) "30000"   21) "info-refresh"   22) "8296"   23) "role-reported"   24) "master"   25) "role-reported-time"   26) "170821848"   27) "config-epoch"   28) "0"   29) "num-slaves"   30) "2"   31) "num-other-sentinels"   32) "2"   33) "quorum"   34) "2"   35) "failover-timeout"   36) "180000"   37) "parallel-syncs"   38) "1"

sentinel master master-name

展示指定master-name的主节点状态以及相关的统计信息

sentinel slaves master-name

展示指定master-name的从节点状态以及相关统计信息

127.0.0.1:26379> sentinel slaves mymaster1)  1) "name"    2) "127.0.0.1:6380"    3) "ip"    4) "127.0.0.1"    5) "port"    6) "6380"    7) "runid"----------------省略------------2)  1) "name"    2) "127.0.0.1:6381"    3) "ip"    4) "127.0.0.1"    5) "port"    6) "6381"    7) "runid"

sentinel sentinels master-name

展示指定master-name的sentinel节点集合,不包含当前sentinel节点。

sentinel get-master-addr-by-name master-name

返回指定master-name的主节点的IP和端口

127.0.0.1:26379> sentinel get-master-addr-by-name mymaster1) "127.0.0.1"2) "6379"

sentinel reset pattern

sentinel对于符合pattern通配符风格的主节点配置进行重置,包含清除主节点的相关状态,重新发现从节点和sentinel节点等

sentinel failover master-name

 对指定<master-name>的主节点进行强制故障转移,该命令在redis的日常运维中非常有用。

sentinel ckquorum  master-name

检测当前可达的sentinel节点总数是否达到了quorum的个数,例如quorum的值为3,而当前的可达的sentinel节点个数为2,则无法进行故障转移,redis sentinel的高可用特性也将失去

sentinel flushconfig

将sentinel节点的配置强制刷到磁盘上,这个命令sentinel节点自身用的比较多,当配置文件丢失或者损坏时,该命令比较有用。

sentinel remove master-name

取消当前redis sentinel节点对于指定master-name主节点的监控。

sentinel monitor master-name ip port quorum

这个命令和配置文件中的配置是一样的,都是为了监控主节点。只不过这个是通过命令的形式监控的。

sentinel set master-name

动态修改sentinel节点的配置选项

sentinel is-master-down-by-addr

sentinel节点之间用来交换对主节点是否下线的判断,根据参数的不同,可以作为sentinel领导者选举的通信方式。

看完上述内容,你们对Sentinel如何在Redis中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Sentinel如何在Redis中使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Sentinel如何在Redis中使用

今天就跟大家聊聊有关Sentinel如何在Redis中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、sentinel monitor用法:sentinel monitor m
2023-06-14

如何在项目中使用Spring Cloud Alibaba Sentinel组件

这篇文章主要介绍“如何在项目中使用Spring Cloud Alibaba Sentinel组件”,在日常操作中,相信很多人在如何在项目中使用Spring Cloud Alibaba Sentinel组件问题上存在疑惑,小编查阅了各式资料,
2023-06-20

Java中如何使用SpringCloudAlibaba Sentinel组件

Java中如何使用SpringCloudAlibaba Sentinel组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Sentinel 是什么随着微服务的流行,服务和服
2023-06-20

redis在java中如何使用

本文介绍了在Java中使用Redis的方法,包括建立连接、设置和获取键值、使用不同数据类型、事务处理、管道操作和订阅功能。此外,文中也提到了使用Redis的最佳实践,如连接池、批量命令、键过期时间和实例监控。通过本文,读者可以全面了解如何在Java应用程序中集成Redis,以提高性能和可扩展性。
redis在java中如何使用
2024-04-02

redis如何在java中使用

本教程详细介绍了如何在Java中使用RedisAPI,包括连接到服务器、存储和检索值、使用数据结构(列表、集合、哈希表、有序集合)、发布和订阅消息、事务、管道以及高级功能(Lua脚本、连接池、哨兵监控、集群模式)。通过这些功能,Java开发者可以轻松地将Redis集成到他们的应用程序中,构建健壮且可扩展的解决方案。
redis如何在java中使用
2024-04-02

Redis如何在Spring中使用

本篇文章为大家展示了Redis如何在Spring中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Eclipse工程结构如下图为我的示例工程的结构图,采用Maven构建。其中需要集成Spring,
2023-05-30

SpringCloud中如何使用Sentinel哨兵组件

这篇文章给大家介绍SpringCloud中如何使用Sentinel哨兵组件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、概念描述Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务
2023-06-02

java客户端中如何使用Jedis实现操作Redis Sentinel 连接池

这篇文章给大家介绍java客户端中如何使用Jedis实现操作Redis Sentinel 连接池,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。pom.xml配置 org.s
2023-05-31

SpringCloud中如何使用Sentinel实现限流

这篇文章主要介绍了SpringCloud中如何使用Sentinel实现限流的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud中如何使用Sentinel实现限流文章都会有所收获,下面我们一起来看
2023-06-26

如何在Redis中使用swap空间

这篇文章将为大家详细讲解有关如何在Redis中使用swap空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 swap空间对于操作系统来说比较重要,当我们使用操作系统的时候,如果系统内存
2023-06-14

redis如何在java中使用情况

RedisJava客户端通过提供与Redis服务器交互的API,帮助Java应用程序访问Redis数据库。安装依赖后,可使用Jedis类进行连接。基本操作包括设置值、获取元素、创建集合和哈希表,以及追加到列表。高级特性包括事务、管线、发布/订阅和持久化。最佳实践建议释放资源、处理异常、使用连接池和优化查询。
redis如何在java中使用情况
2024-04-02

如何在java项目中使用redis

本篇文章给大家分享的是有关如何在java项目中使用redis,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、首先下载jar包放到你的工程中2、练习package com.ji
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录