Redis | 哨兵模式

redis系统深度学习四:主节点自动化故障恢复——哨兵 前言 在深入学习Redis(3):主从复制中曾提到,Redis主从复制的作用有数据热备、负载均衡、故障恢复等;但主从复制存在的一个问题是故障恢复无法自动化。本文将要介绍的哨兵,它基于Redis主从复制,主要作用便是解决主节点故障恢复的自动化问题,进一步提高系统的高可用性。 文章主要内容如下:首先介绍哨兵的作用和架构;然后讲述哨兵系统的部署方法,以及通过客户端访问哨兵系统的方法;然后简要说明哨兵实现的基本原理;最后给出关于哨兵实践的一些建议。文章内容基于Redis 3.0版本。 目录 一、作用和架.. 阅读详情

Redis | 哨兵模式

1. 简介

Redis Sentinel(哨兵)是Redis提供的一种高可用性解决方案。它是一个独立的进程,用于监控和管理Redis主从模式的节点,并在主节点故障时自动进行故障转移。哨兵模式可以确保Redis集群的高可用性和数据一致性。

在哨兵模式中,有一个主节点(Master)和多个从节点(Slave),以及一个或多个哨兵(Sentinel)。主节点负责接收写操作和复制数据到从节点,而从节点负责复制主节点的数据。哨兵负责监控主节点和从节点的状态,并在主节点故障时自动将一个从节点提升为新的主节点。

以下是Redis哨兵模式的一些特点和工作原理:

  1. 哨兵选举:在启动时,每个哨兵都会对主节点进行投票选举,选出一个领头哨兵(Leader Sentinel)。领头哨兵负责协调故障转移过程。
  2. 监控:哨兵会定期检查Redis节点的健康状态,包括主节点和从节点的状态。如果发现主节点不可用,哨兵会触发故障转移。
  3. 故障转移:当主节点不可用时,领头哨兵会选出新的主节点,并通知其他哨兵和从节点进行切换。在故障转移期间,客户端的请求会被暂时拒绝,直到新的主节点选举完成。
  4. 数据一致性:在进行故障转移时,哨兵会确保新的主节点和从节点与旧的主节点数据保持一致。因此,即使主节点故障,数据不会丢失。

2. 配置

  1. 配置Redis主节点:
    在主节点的配置文件(redis.conf)中,设置requirepass选项为主节点的密码。例如:

    requirepass your_redis_password
    
  2. 配置Redis从节点:
    在从节点的配置文件(redis.conf)中,设置masterauth选项为主节点的密码,并使用replicaof选项将从节点连接到主节点。例如:

    masterauth your_redis_password
    replicaof <master-ip> <master-port>
    

    <master-ip>和<master-port>分别是主节点的IP地址和端口号。

  3. 配置Redis Sentinel:
    创建一个名为sentinel.conf的新文件,其中指定以下选项:

    bind *
    sentinel resolve-hostnames yes
    sentinel monitor mymaster <master-ip> <master-port> <quorum>
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 10000
    sentinel auth-pass mymaster <master-password>
    

    在sentinel monitor中,mymaster是Redis实例的名称,<master-ip> <master-port>是主节点的IP地址和端口号,<quorum>是哨兵执行故障转移所需的最少哨兵数目。

    sentinel auth-pass配置了连接到主节点的密码,以便哨兵能够正确连接到Redis主节点。

  4. 启动Redis服务器和哨兵:
    首先,启动带密码的Redis主节点和从节点。然后,分别启动哨兵进程,并使用配置文件启动:

    redis-sentinel /path/to/sentinel.conf
    

3. 演示

注意:因为每启动redis都会修改sentinel.conf,如果之前测试过想重新开始测试,要将sentinel.conf内容恢复。

下面以1个主节点,2个从节点,1个哨兵节点演示。

文件树

hello-redis
├── docker-compose.yaml
└── sentinel
    └── sentinel.conf

文件

sentinel.conf

bind 127.0.0.1
sentinel resolve-hostnames yes
sentinel monitor mymaster 192.168.200.2 6379 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster 123456

docker-compose.yaml

version: "3.8"
networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: '192.168.200.0/24'
services:
  master:
    container_name: master
    image: redis:7.0
    networks:
      network:
        ipv4_address: 192.168.200.2
    command:
      - redis-server
      - --replicaof no one
      - --requirepass 123456
      - --masterauth 123456
      - --bind * -::*
  replica1:
    container_name: replica1
    image: redis:7.0
    networks:
      network:
        ipv4_address: 192.168.200.3
    command:
      - redis-server
      - --requirepass 123456
      - --bind * -::*
      - --masterauth 123456
      - --replicaof 192.168.200.2 6379
    depends_on:
      - master
  replica2:
    container_name: replica2
    image: redis:7.0
    networks:
      network:
        ipv4_address: 192.168.200.4
    command:
      - redis-server
      - --requirepass 123456
      - --bind * -::*
      - --masterauth 123456
      - --replicaof 192.168.200.2 6379
    depends_on:
      - master
  sentinel1:
    container_name: sentinel1
    image: redis:7.0
    networks:
      network:
        ipv4_address: 192.168.200.5
    volumes:
      - ./sentinel:/root/sentinel
    command:
      - redis-sentinel
      - /root/sentinel/sentinel.conf
      - --sentinel
    depends_on:
      - master
  • 启动:在hello-go文件夹下输入docker compose up启动。
  • 测试故障转移:docker stop master停止主节点,等待5秒就能从控制台或sentinel.conf中看到主节点发生切换。
  • 恢复故障主节点:docker start master就能看到master节点又加入集群,并且以从节点身份。

4. 注意

  1. 在生产环境中,建议使用多个哨兵和Redis Cluster等高级解决方案来实现更可靠和自动化的高可用性。
  2. 主节点也要指定masterauth(主节点授权),防止主节点意外中止恢复正常后以无法以从节点身份连接到集群。
Redis哨兵模式 📚 Redis哨兵模式。 阅读详情

相关推荐

Redis——Redis 哨兵模式

Redis 哨兵模式哨兵模式的简介哨兵的作用启用哨兵模式配置哨兵启动哨兵哨兵模式的工作原理阶段一:监控阶段阶段二:通知阶段阶段三:故障转移阶段发现故障选出领头sentinel挑选备选master主从切换总结 哨兵模式的简介 主从切换技术的方法是︰当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel (哨兵)架构来解决这个问题。 哨兵(se

Cantevenl的博客 3万+

redis哨兵

redis sentinel 哨兵 redis哨兵是redis高可用性的解决方案:有一个或多个sentinal实例组成的sentinel系统可以监视多个主服务器,以及主服务器属下的从服务器。并在被监视的主服务器下线状态时,从主服务器属下的某个从服务器升级为新的主服务器代替原来的主服务器继续执行命令请求。 启动并初始化sentinal 使用命令redis-server /path/to/your/sentinel.conf --sentinal或者redis-sentinel /path/to/your/

huxiongk的博客 1334

天龙八部源码深度解析:从宠物系统到副本机制(C++游戏开发实战)

本文深度解析《天龙八部》源码架构,重点剖析宠物系统状态机实现与副本动态加载机制等核心模块。通过C++代码示例展示宠物AI状态迁移逻辑和副本场景管理技术,为现代游戏开发提供兼容性改造方案与设计启示。适合游戏开发者学习经典MMORPG的工程化实现路径。

weixin_29011239的博客 386

redis主从模式、redis哨兵模式、redis cluster及配置文件详细介绍

redis 主从模式、redis 哨兵模式、redis cluster及配置文件详细介绍

ziania_cumt的博客 1375

从零到一:ArduPilot无人船PID调参实战指南

本文详细介绍了ArduPilot无人船PID调参的实战指南,从基础参数设定到高级调参技术,帮助用户掌握水面环境下的PID控制逻辑。通过案例分析和参数示例,解决无人船在空载、负载变化及不同水域环境中的航行问题,提升无人船的稳定性和精确度。

weixin_29266647的博客 506

SAP-ML章<<<<第二节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>>

#SAP-ML章<<<<第一节:物料账报错处理ABAP编程错误:RAISE_EXCEPTION>>>> 1.物料账报错提示: ABAP编程错误:RAISE_EXCEPTION ABAP程序:SAPLFCML4H_RUN_PRICES应用组件CO-PC-ACT 2. 物料账报错背景: CKMLCP运行结算时 3. 解决方案: 通过DEBUG查看错误的地方 OKTZ:分析原因为:可能打包或者配置传输时弄错 ...

SAP.David.Gao的博客 1856

Redis系列之Redis Sentinel

Redis Sentinel:主从集群存在的问题、引入Redis Sentinel、概述、功能、安装、心跳检查、自动发现机制、配置的自动纠正、下线、主观下线、客观下线、哨兵选举、故障转移、缺点、数据丢失、优化方案、

lonelymanontheway的博客 2348

基因家族的鉴定-基于Windows系统上的HMMER

基因家族的鉴定-基于Windows系统上的HMMER。

liangjinghui123的博客 3241

redis主从中的Master自动选举之Sentinel哨兵机制

顾名思义,哨兵的作用就是监控Redis系统的运行状况,它的功能包括两个哨兵是一个独立的进程,使用哨兵后的架构如图所示,同时为了保证哨兵的高可用,我们会对Sentinel做集群部署,因此Sentinel不仅仅监控Redis所有的主从节点,Sentinel也会实现相互监控。 在前面主从复制的基础上,增加三个sentinel节点,来实现对redis中master选举的功能。 192.168.221.128(sentinel) 192.168.221.129(sentinel) 192.168.221.130(se

weixin_40980639的博客 3809

9篇1章1节:中国居民健康与营养调查(CHNS)数据库的官网解析和数据下载(2026年版)

在探讨中国社会经济转型与人口健康变迁的学术领域中,中国健康与营养调查(CHNS) 是一个无法绕过的权威数据库。本文将带你深入了解CHNS的项目背景、庞大的数据体系,以及如何通过这两个核心网站获取关键的家庭、个人及社区层面的研究数据。

MD Code 1693

Python进阶005:修改Jupyter Notebook的工作路径

1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera

若北辰 1384

Redis哨兵模式详解

文章目录哨兵模式什么是哨兵实现哨兵模式1.配置一主两从2.哨兵模式配置3.一个哨兵监控多个Redis主从系统实现原理主观下线客观下线选举领头哨兵故障恢复   在主从模式的Redis系统中,从数据库在整个系统中起到了数据冗余备份和读写分离的作用,但是当数据库遇到异常中断服务后,我们只能通过手动的方式选择一个从数据库来升格为主数据库,显然这种方式很麻烦需要人工介入,这时通过哨兵模式可以实现自动化的系统...

波波烤鸭的博客 5770

本地搭建 GitLab 14.1.0版本CI/CD

GitLab 镜像版本 gitlab/gitlab-ce:14.1.0-ce.0 GitLab Runner 镜像版本 gitlab/gitlab-runner:v14.1.0 搭建此套环境是在一台32G的windows电脑上安装的。 使用dokcer安装。 此外还涉及的软件Docker Desktop,WSL 安装GitLab 首先启动 dockcer,打开WSL 打开后 首先定义GitLab的持久化目录 export GITLAB_HOME=/srv/gitlab 然后运行安装GitLab的命令

知无涯 4491

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

当我们的主服务器宕机后,要手动的去切换主从模式,这样的人工干预,费事费力,还会造成一段时间我们的服务不能使用。所有我们要使用哨兵模式来解决这一问题。哨兵是对Redis的系统的运行情况的监控,它是一个独立进程,功能有二个:监控主机Redis和从机Redis是否运行正常;主机Redis出现故障后自动将从机转化为主机;

陈橘又青的博客 3万+

【生产实践】PostgreSQL高可用Patroni安装(超详细已踩坑)

一 安装Patroni 0 Patroni 对Python的版本要求 我安装的是Patroni最新版本 :4.0.3,Patroni 对Python 版本有要求,没有具体的版本矩阵,但是根据每个版本发布信息可以得到以下信息 Patroni 4.0 需要 Python 3.8 以上(可以根据下面发布版本信息推理出) Version 3.0.2 Version 3.0.2 dropped support of Python older than 3.6. 版本3.0.2不再支持3.6版本以下的P

DBA之路的博客 1739

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Redis的哨兵模式原理详解

Redis哨兵模式详解:保障高可用的分布式应急机制 Redis哨兵模式是一个分布式系统,用于监控Redis主从架构的状态,并在主节点故障时自动进行故障转移。它通过定期PING命令检测节点状态,当足够哨兵确认主节点故障后,会选举新主节点并重新配置系统。哨兵模式具有监控、自动故障转移和客户端透明等特点,通常部署3-5个哨兵节点以确保高可用性。文章详细介绍了哨兵的工作原理、配置方法、Java客户端连接示例,以及内部通信机制和选举算法,并提供了最佳实践和局限性分析。哨兵模式虽能保障高可用,但不解决数据分区问题,所有

从不水文,坚持创作,加油 7988

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

redis哨兵模式

在分布式系统架构中,Redis作为高性能键值存储中间件,其可用性直接影响业务稳定性。然而,单节点 Redis 存在服务单点风险,一旦宕机将导致缓存层失效,进而可能引发级联故障。Redis哨兵模式(Sentinel)通过引入轻量级的监控与自动故障转移机制,有效解决了这一问题。哨兵(Sentine1),主要负责监控主从节点运行是否正常,以及当主节点出现故障时自动将一个从节点转换为新的主节点。哨兵是一个独立的进程。,最基础的通用哨兵架构如下所示:哨兵最基础架构由两部分组成,包括哨兵节点和数据节点。

悟已往之不谏 1249

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

redis 配置哨兵模式

创建文件夹/data/redis/conf,把redis.conf 分别复制三份 redis_6379.conf、redis_6380.conf、redis_6381.conf,vi打开redis_6380.conf修改。当 主服务器 重新向 Sentinel的PING命令返回 有效回复 时,主服务器 的 主观下线状态 就会被移除。当一个 主服务器 被 Sentinel标记为 客观下线 时,Sentinel 向 下线主服务器 的所有 从服务器 发送 INFO 命令的频率,会从10秒一次改为 每秒一次。

王嘞嘞的前端之路 1733

redis的哨兵模式

概述:自动选举当老大模式,当主服务器宕机后,需要手动选举一台从服务器为主服务器,这时候需要人工干预,费时费力,还会造成一段时间内服务不可用,这不是一种推荐模式,更多时候我们优先选择哨兵模式。(REDIS2.8之后正式提供了哨兵架构)。哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个单独的进程,他会独立进行。原理:哨兵通过发送命令,等待redis服务器响应,从而监控运行多个Redis实例。

wt20050610的博客 2002

Redis哨兵模式的搭建

Redis哨兵模式是一种用于在Redis主从复制环境中进行高可用性监控和故障恢复的机制。该模式引入了一个或多个哨兵节点,这些节点负责监控Redis服务器的状态,并在主节点发生故障时切换为新的主节点。redis 哨兵模式启动成功后,会自动在sentinel .conf 最下方生成以下配置。启动所有服务器后,查看所有redis 节点状态。新版本redis自带哨兵,不需要单独安装。依次启动所有服务器上的redis 服务。在redis的安装目录下有个文件。修改所有服务器的hosts。,这就是哨兵的配置文件。

莫忘、初心 3698

Redis中的哨兵模式

文章目录Redis中的哨兵模式什么是哨兵模式?配置哨兵模式的配置文件sentinel.conf启动哨兵模式测试在哨兵模式下如果主机崩了的话会不会从从机中自动选出一个老大哨兵模式自动选举一个主机这个过程是怎样实现自动化的?换老大之后记得修改各个从机的配置文件中的主机认证密码测试哨兵模式结果是否正确哨兵模式的优缺点 Redis中的哨兵模式 什么是哨兵模式? 哨兵模式是一种自动选择老大的模式,即在老大宕机之后,哨兵模式会根据哨兵们的内部投票,自动的重新选出一个新的老大。哨兵模式是一种特殊的模式,首先Redis提供

xzy的博客 9251

Redis 哨兵模式

Redis Sentinel 是一个分布式架构,其中包含若干个 Sentinel 节点和 Redis 数据节点,每个 Sentinel 节点会对数据节点和其余 Sentinel 节点进行监控,如果主节点下线,它会和其他的 Sentinel 节点进行"协商",当大多数 Sentinel 节点对主节点下线折合结论达成共识,它们会在内部"选举"出一个领导节点完成自动故障转移的工作,同时将这个变化实时通知给 Redis 应用方,整个过程是自动完成,不需要人工介入,整体的架构图如下。

2302_82270778的博客 1720

redis 哨兵模式

文章目录一、哨兵模式概述二、哨兵模式配置1、使用 一主二从 配置2、关闭主机测试3、总结4、 sentinel.conf 详细配置文件Redis 缓存穿透雪崩 之后用到了再讲 视频链接 官网:https://redis.io/ 中文官网:http://redis.cn/ 一、哨兵模式概述 (自选老大,上篇讲的主机宕机可以通过 salveof no one 手动选老大----谋朝篡位) 主从切换技术的方法是∶ 当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段

不懂一休 1万+
上一篇: Redis | 主从模式
下一篇: Redis | 集群模式
yimtcode
博客等级 码龄6年 205粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yimtcode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值