首页 > 数据库 >redis哨兵模式和集群模式优缺点_redis集群哨兵模式

redis哨兵模式和集群模式优缺点_redis集群哨兵模式

时间:2022-11-08 15:35:53浏览次数:61  
标签:redis 模式 哨兵 故障 集群 节点

redis哨兵模式和集群模式优缺点_redis集群哨兵模式Redis主从模式是一主多从,从节点宕机还有其他的备份,但是主节点宕机了,必然引起系统的故障。为了解决这个问题,Redis提供了哨兵模式,监控主从模式中的所有节点,如果主节点宕机,会选举从节点重新成为主节点。使整个主从服务正常运行。Redis提供了哨兵机制来实现主从集群的自动故障恢复。其主要起到的作用如下:Sentinel基于心跳机制监测服务状态,每个一秒向集群中的每个实例发送ping命令。一旦发现主节点故障,sentinel需要在从节点选择新的主节点,选择依据:当选中其中一个从节点为新

 

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说redis哨兵模式和集群模式优缺点_redis集群哨兵模式,希望能够帮助大家进步!!!

 

Redis 哨兵模式

Redis 主从模式是一主多从,从节点宕机还有其他的备份,但是主节点宕机了,必然引起系统的故障。为了解决这个问题,Redis 提供了哨兵模式,监控主从模式中的所有节点,如果主节点宕机,会选举从节点重新成为主节点。使整个主从服务正常运行。
在这里插入图片描述

Redis 提供了哨兵机制来实现主从集群的自动故障恢复。其主要起到的作用如下:

  • 监控:Sentinel 会监控不断检查主从集群的主从节点是否正常工作;
  • 故障恢复:主节点宕机,Sentinel 会从从节点中选举出一个节点,将其设置为主节点,故障恢复后原先的主节点将置为从节点;
  • 通知:Sentinel 充当客户端的服务发现来源,当集群发现故障转移后,会将最新消息推送到客户端。
服务状态监控

Sentinel 基于心跳机制监测服务状态,每个一秒向集群中的每个实例发送 ping 命令。

  • 主观下线:如果某 Sentinel 节点发现某个节点未在规定的时间响应心跳,那么就认为该节点主观下线;
  • 客观下线:如果指定数量的 Sentinel 认为某个节点下线,那么该节点将被认为客观下线。

在这里插入图片描述

选举新的主节点

一旦发现主节点故障, sentinel 需要在从节点选择新的主节点,选择依据:

  • 首先会判断从节点和主节点的断开的时间,如果超过指定值则会排除该从节点;
  • 判断节点的优先等级,越小优先级越高,如果是0说明不参与选举;
  • 判断从节点同步数据偏移量,雨大说明数据越新,优先级越高;
  • 租后判断节点的运行id,越小优先级越高。
如何故障转移

当选中其中一个从节点为新的主节点,故障转移的步骤如下:

  • sentinel 给备选的从节点发送 slaveof no one 命令,该节点就成为主节点;
  • sentinel 给其他所有的从节点发送 slave of 指令,让其他的节点称为新主节点的从节点,开始从新的主节点同步数据。
  • 最后 sentinel 会将故障节点标记为从节点,当故障节点重启后自动变为新主节点的从节。

在这里插入图片描述

 参考:redis哨兵模式和集群模式优缺点_redis集群哨兵模式

标签:redis,模式,哨兵,故障,集群,节点
From: https://www.cnblogs.com/aspirant/p/16869847.html

相关文章

  • 中介者模式
    在“虚拟聊天室”实例中增加一个新的具体聊天室类和一个新的具体会员类,要求如下:1.新的具体聊天室中发送的图片大小不得超过20M。2.新的具体聊天室中发送的文字长度不得......
  • 工厂方法模式
    目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。类图   源码......
  • 抽象工厂模式
    使用抽象工厂模式,完成下述产品等级结构:   类图   代码结构  java  packagerjsj.no4;publicclassBlackSkinWomenimplementsWomen{......
  • Go | 浅谈包管理模式
    任何一门编程语言都离不开对各种工具包的使用,工具包的管理就显得异常重要了。Go的包管理方式是逐渐演进的,本文介绍Go语言的两种包管理模式。GOPATH模式引包(不推荐)在1......
  • React组件设计模式-纯组件,函数组件,高阶组件
    一、组件(1)函数组件如果你想写的组件只包含一个render方法,并且不包含state,那么使用函数组件就会更简单。我们不需要定义一个继承于React.Component的类,我们可以定......
  • React的5种高级模式
    本文概述了5种现代高级React模式,包括集成代码、优点和缺点,以及在公共库中的具体用法。像每个React开发者一样,你可能已经问过自己以下问题之一我如何建立一个可重复使用......
  • 设计模式—建造者模式
    我们通常在开发中见到一种链式的构造对象,比如:demoAnimatordemoAnimator=newdemoAnimator.Builder().setFade(true).setDuration(1000).build();那他是怎样实现的呢、......
  • 使用Postman去验证Oauth2.0授权码模式出现"Error: Bad client credentials"的解决方法
    错误时的authentication的配置如下  检查过console后,发现拿授权码去获取token时没有带上CilentSecret  经过一番奋斗发现是ClientAuthentication这里的问题......
  • 下载Redis并设置自启动
    Redis的下载地址:https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100进入解压后的文件夹,输入命令 redis-serverredis.windows.conf后回车,如下即表示......
  • redis集群部署
    /data/app/redis/redis-5.0.0/src/redis-server/data/app/redis/redis-5.0.0/7001/redis.conf/data/app/redis/redis-5.0.0/src/redis-server/data/app/redis/redis......