Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」最近谈到Redis就会听到哨兵模式,工作期间同事也分享过关于哨兵模式的知识,但由于工作忙(给自己找个借口)没有没认真看,现在恶补下,老样子还是分上篇应用,下篇看实现过程,下面我们来看下哨兵到底是啥?

Redis学习笔记(十四)Sentinel(哨兵)(上)

最近谈到Redis就会听到哨兵模式,工作期间同事也分享过关于哨兵模式的知识,但由于工作忙(给自己找个借口)没有没认真看,现在恶补下,老样子还是分上篇应用,下篇看实现过程,下面我们来看下哨兵到底是啥?

哨兵模式(Sentinel)是Redis的高可用解决方案。由一个或多个Sentinel实例组成的Sentinel系统,可以监控任意多个主服务器,以及这些主服务器下的所有从服务器,当某个主服务器下线时,自动将这个主服务器下的某个从服务器升级为新的主服务器,代替下线的主服务器继续处理命令。另外Sentinel系统还会继续监视已下线的主服务器,当主服务器恢复时,它将被降级成该主服务器的从服务器。

在看哨兵模式的实现过程之前,我们先看一下哨兵的用法

1、我们将redis.windows.conf配置文件拷贝3份出来,改下名字便于识别:6379.conf,6380,conf,6381.conf。(这里我们模拟使用经典的三节点搭建)

6379.conf我们使用默认配置的6379端口,分别改下 6380,conf与6381.conf的端口号

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 上一章我们使用slaveof <masterip> <masterport>命令设置从节点,现在我们修改6380.conf与6391.conf,将复制命令配置在文件中,将6379作为主节点:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

2、下面我们执行命令,启动三个节点:

redis-server.exe 6379.conf 

redis-server.exe 6380.conf 

redis-server.exe 6381.conf

 

 Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 好了,现在三个节点都已经启动,并且从控台上看出,从节点已经在复制主节点的数据。

3、分别创建三个Sentinel配置文件:sentinel6379.conf ,sentinel6380.conf ,sentinel3381.conf

内容分别是:

 sentinel6379.conf

port 26379
#当前Sentinel服务运行的端口
port 26379  
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover 
sentinel failover-timeout mymaster 10000  
#执行故障转移时,最多有一台对新的主服务器进行同
sentinel parallel-syncs mymaster 1

代码100分

sentinel6380.conf

代码100分#当前Sentinel服务运行的端口
port 26380
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover 
sentinel failover-timeout mymaster 10000  
#执行故障转移时,最多有一台对新的主服务器进行同
sentinel parallel-syncs mymaster 1

sentinel3381.conf

port 26381
# 哨兵监听的主服务器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒内无相应,则认为主站点宕机
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover 
sentinel failover-timeout mymaster 10000  
#执行故障转移时,最多有一台对新的主服务器进行同步
sentinel parallel-syncs mymaster 1

3、执行命令启动:

redis-server.exe sentinel6379.conf –sentinel

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 redis-server.exe sentinel6380.conf –sentinel

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 redis-server.exe sentinel6381.conf –sentinel

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 4、校验:

先看下主服务器6379的信息:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 切换到6380与6381我们看下:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 现在我们模拟主服务器6379宕机(关闭掉6379的服务端),观察6380与6381的反应。

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 从以上信息来看,6381被选举为主服务器,那么现在我们分别看下6380与6381的信息:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 此时监听信息为:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 下一步我们恢复6379看看会发生什么:

 Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

 现在看下监听信息:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

此时发现6379被设置为从服务器。

 

 

现在我们redis-cli 连接到6379看下:

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

 

OK完工,暂时只模拟这一种宕机情况。

 

篇幅有些长,不知道有多少同学能看到这里。

 


 

 

每天学一点,总会有收获。

 

下一步我们看下Redis的Sentinel(哨兵)的实现过程

 

Redis学习笔记(十四)Sentinel(哨兵)(上)「终于解决」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8290.html

(0)
上一篇 2023-03-04
下一篇 2023-03-04

相关推荐

  • Python 取余运算详解

    Python 取余运算详解在计算机科学中,对于数字的一些基本操作,取余(或者称为取模)是很常见的一种。在Python中,取余操作同样也是一种常见的数学运算,而且语法简单易懂。

    2024-08-21
    27
  • oracle 触发器trigger(主键自增长)[通俗易懂]

    oracle 触发器trigger(主键自增长)[通俗易懂]触发器trigger 触发器我们也可以认为是存储过程,是一种特殊的存储过程。 存储过程:有输入参数和输出参数,定义之后需要调用 触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行

    2022-12-24
    160
  • MySQL学习笔记(18):SQL优化[亲测有效]

    MySQL学习笔记(18):SQL优化[亲测有效]本文更新于2019-08-18,使用MySQL 5.7,操作系统为Deepin 15.4。 优化SQL语句的步骤 通过SHOW STATUS了解SQL语句的执行情况 操作的计数,是对执行次数进行计数,

    2023-03-20
    141
  • 删除Python

    删除PythonPython是一门非常流行的编程语言,它可以帮助我们完成各种任务。但是,在某些情况下,我们可能需要删除Python或者Python的某些模块。在本文中,我们将从多个方面来详细介绍如何删除Python。

    2024-06-06
    44
  • Python实现最长公共子序列算法

    Python实现最长公共子序列算法最长公共子序列是字符串处理中的基本问题之一,可以用于计算两个字符串之间的相似度或复制、粘贴代码时检测差异。而Python是一种广泛使用的高级编程语言,拥有丰富的数据结构和库函数支持。在本篇文章中,我们将展示如何使用Python实现最长公共子序列算法。

    2024-09-08
    24
  • 使用Python创建文件夹的方法

    使用Python创建文件夹的方法在日常的程序开发中,我们常常需要使用Python创建文件夹来存放一些重要的数据或者程序的临时文件。Python提供了非常方便的方法,可以在程序中方便地创建、删除文件夹。本文将介绍如何使用Python创建文件夹。

    2024-08-13
    27
  • 如何退出conda

    如何退出condaConda是一个包管理系统和环境管理系统。它可以让你在不同的项目之间快速切换环境,并管理不同的依赖包。Conda也提供了一些命令行工具,包括conda、conda-env和conda-build等工具,用于在conda环境下进行不同的操作。

    2024-09-01
    19
  • 二进制数组实战 – 纯前端导出Excel文件[通俗易懂]

    二进制数组实战 – 纯前端导出Excel文件[通俗易懂]就这样,浏览器就会将生成的Excel文件自动下载到本地,下面是实际效果。 使用过WebGL的同学应该知道,这是浏览器与显卡之间的通信接口,为了满足JavaScript与显卡之间大量且实时的数据交换,它们之间的通信数据必须是二进制,而不能是传统的文本格式。如果以文本格式传递一个3…

    2023-03-02
    144

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注