【Redis(5)】Redis哨兵模式配置示例

Redis的三种高可用方案对比参考上一篇博客:深入理解Redis三种高可用方案,以做出明智的选择,下面要探讨的是三种方案其中的一种。

在Redis的主从模式中,虽然可以从节点提供读取操作的负载均衡,并且作为数据的热备份,但是这种模式下存在一个关键的问题:主节点故障时需要手动进行故障转移。这不仅增加了系统的停机时间,而且对运维团队提出了较高的要求。为了解决这个问题,Redis引入了哨兵节点这个概念,添加哨兵节点到Redis的架构中是为了提高系统的高可用性。哨兵系统专门设计用来监控Redis主节点和从节点的健康状况,并在主节点发生故障时自动执行故障转移流程。

一、工作原理

Redis哨兵系统与主从复制的工作原理如下:

  1. 主节点(Master_node):处理所有写入操作,并通过复制机制将数据同步给从节点。
  2. 从节点(Slave_node):复制主节点的数据,处理读取操作,为主节点提供数据冗余和读扩展。
  3. 哨兵节点(Sentinel_node):监控主节点状态,当主节点故障时,自动进行故障转移,将一个从节点提升为新的主节点,并更新其他节点的配置。

二、最小节点数

为了实现哨兵系统,你需要至少以下节点:

1个主节点(Master_node)

1个从节点(Slave_node),为了提高可用性和读取性能,通常部署多个从节点。

3个哨兵节点(Sentinel_node),以确保哨兵之间的故障转移选举不会发生平局。

三、配置文件

以下是一个高性能的Redis主节点配置文件示例:

主节点(Master_node)配置 (Master_node.conf):

port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
logfile /var/log/redis_6379.log
dir /var/lib/redis

# 最大内存使用量
maxmemory 16gb

# RDB持久化配置
save 900 1
save 300 10
save 60 10000

# AOF持久化配置
appendonly yes
appendfsync everysec

# 主从复制设置
replica-read-only yes

# 网络性能优化
tcp-backlog 511
timeout 0

从节点(Slave_node)配置 (Slave_node.conf):

port 6380
daemonize yes
pidfile /var/run/redis_6380.pid
logfile /var/log/redis_6380.log
dir /var/lib/redis_slave

# 指定复制的主节点
slaveof <Master_node_IP> 6379

# 从节点只读
replica-read-only yes

# 其他配置与主节点相似,根据需要调整

哨兵节点(Sentinel_node)配置 (Sentinel_node.conf):

port 26379
daemonize yes
logfile /var/log/redis_sentinel.log
sentinel monitor <Master_node_IP> 6379 2
sentinel down-after-milliseconds <Master_node_IP> 6379 30000
sentinel failover-timeout <Master_node_IP> 6379 180000
sentinel auth-pass <Master_node_IP> 6379 <Master_Password>

四、版本与服务器资源要求

Redis版本:推荐使用Redis 3.x或以上版本,以确保哨兵系统和复制功能的最佳支持。

服务器资源

CPU:至少4核处理器,以保证Redis操作的快速执行。

内存:至少8GB RAM,推荐16GB或更多,以满足maxmemory配置。

磁盘:至少提供等同于内存大小的磁盘空间,用于持久化操作。SSD磁盘可以提供更好的I/O性能。

网络:需要稳定和足够的带宽,以支持节点间的数据同步和哨兵监控。

 

哨兵节点是Redis高可用性架构的重要补充。它们提供了自动的故障检测和转移,无需人工干预,从而提高了Redis在面临主节点故障时的自我恢复能力。在设计Redis系统时,考虑到系统的稳定性和可用性,通常会在主从模式的基础上添加哨兵节点。推荐至少部署三个哨兵节点以确保系统的健壮性和决策的可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/570142.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型 AI 框架昇思 MindSpore 2.3.RC1 发布,训练、推理性能大幅提升,JIT 编译强化

经过社区开发者们几个月的开发与贡献&#xff0c;现正式发布昇思 MindSpore2.3.RC1 版本&#xff0c;通过多维混合并行以及确定性 CKPT 来实现超大集群的高性能训练&#xff0c;支持大模型训推一体架构&#xff0c;大模型开发训练推理更简、更稳、更高效&#xff0c;并在训推一…

Golang | Leetcode Golang题解之第46题全排列

题目&#xff1a; 题解&#xff1a; func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

Navicat和MySQL的安装、破解以及MySQL的使用(详细)

1、下载 Navicat Navicat 官网&#xff1a;www.navicat.com.cn/ 在产品中可以看到很多的产品&#xff0c;点击免费试用 Navicat Premium 即可&#xff0c;是一套多连数据库开发工具&#xff0c;其他的只能连接单一类型数据库 点击试用 选择系统直接下载 二、安装 Navicat 安…

wsl2 中docker安装完毕后无法正常启动

wsl2 中docker安装完毕后无法正常启动 1、背景2、目标3、环境4、原因4、操作5.1、查看配置5.2、 切换配置5.3、启动docker5.4、验证docker 1、背景 在win10中安装wsl2体验linux操作系统&#xff0c;按照docker官网步骤安装&#xff0c;安装完毕后面提示 $ docker ps Cannot co…

ChatGPT实战100例 - (18) 用事件风暴玩转DDD

文章目录 ChatGPT实战100例 - (18) 用事件风暴玩转DDD一、标准流程二、定义目标和范围三、准备工具和环境四、列举业务事件五、 组织和排序事件六、确定聚合并引入命令七、明确界限上下文八、识别领域事件和领域服务九、验证和修正模型十、生成并验证软件设计十一、总结 ChatGP…

淘宝扭蛋机小程序开发:开启趣味购物新篇章

随着移动互联网的迅猛发展&#xff0c;用户对于购物体验的需求也在不断升级。淘宝作为国内领先的电商平台&#xff0c;始终致力于为用户创造更加新颖、有趣的购物环境。为了满足广大用户的期待&#xff0c;淘宝精心打造了一款全新的扭蛋机小程序&#xff0c;旨在为用户带来前所…

37. UE5 RPG创建自定义的Ability Task

在前面的文章中&#xff0c;我们实现了一个火球术的一些基本功能&#xff0c;火球术技能的释放&#xff0c;在技能释放后&#xff0c;播放释放动画&#xff0c;在动画播放到需要释放火球术的位置时&#xff0c;将触发动画通知&#xff0c;在动画通知中触发标签事件&#xff0c;…

JetBrains RubyMine v2024.1 安装教程 (Rails/Ruby集成开发环境)

前言 JetBrains RubyMine是一款杰出而全面的Ruby代码编辑器&#xff0c;能够深入识别动态语言的细节&#xff0c;为用户提供智能编码辅助功能。它能够自动检测错误代码段&#xff0c;并提供智能的编写和修复代码的建议&#xff0c;帮助用户进行代码重构。此外&#xff0c;Ruby…

在Redux Toolkit中使用redux-persist进行状态持久化

在 Redux Toolkit 中使用 redux-persist 持久化插件的步骤如下: 安装依赖 npm install redux-persist配置 persistConfig 在 Redux store 配置文件中(例如 store.js)&#xff0c;导入必要的模块并配置持久化选项: import { combineReducers } from redux; import { persist…

Jmeter插件技术:性能测试中服务端资源监控

性能测试过程中我们需要不断的监测服务端资源的使用情况&#xff0c;例如CPU、内存、I/O等。 Jmeter的插件技术可以很好的实时监控到服务器资源的运行情况&#xff0c;并以图形化的方式展示出来&#xff0c;非常方便我们性能测试分析。 操作步骤&#xff1a; 1、安装插件管理…

主打国产算力 广州市通用人工智能公共算力中心项目签约

4月9日&#xff0c;第十届广州国际投资年会期间&#xff0c;企商在线&#xff08;北京&#xff09;数据技术股份有限公司与广州市增城区政府就“广州市通用人工智能公共算力中心”项目进行签约。 该项目由广州市增城区人民政府发起&#xff0c;企商在线承建。项目拟建成中国最…

后端工程师——Java工程师如何准备面试

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

【JVM系列】关于静态块、静态属性、构造块、构造方法的执行顺序

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java算法 空间换时间(找重复)

一、算法示例 1、题目&#xff1a;题目&#xff1a;0-999的数组中&#xff0c;添加一个重复的元素&#xff0c;打乱后&#xff0c;找出这个重复元素 代码示例&#xff1a; package com.zw.study.algorithm; import java.util.*; public class XorTest {public static void mai…

Vue报错 Cannot read properties of undefined (reading ‘websiteDomains‘) 解决办法

浏览器控制台如下报错&#xff1a; Unchecked runtime.lastError: The message port closed before a response was received. Uncaught (in promise) TypeError: Cannot read properties of undefined (reading websiteDomains) at xl-content.js:1:100558 此问题困扰了…

可持续发展:制造铝制饮料罐要消耗多少资源?

铝制饮料罐是人们经常使用的日常用品&#xff0c;无论是在购物、午休还是在自动售货机前选择喝什么的时候&#xff0c;很少有人会想知道装他们喝的饮料的罐子到底是如何制成的&#xff0c;或者这些铝罐的原材料是如何进出的。 虽然有化学品和一些合金进入铝饮料罐制造过程或成为…

【VSCode调试技巧】Pytorch分布式训练调试

最近遇到个头疼的问题&#xff0c;对于单机多卡的训练脚本&#xff0c;不知道如何使用VSCode进行Debug。 解决方案&#xff1a; 1、找到控制分布式训练的启动脚本&#xff0c;在自己的虚拟环境的/lib/python3.9/site-packages/torch/distributed/launch.py中 2、配置launch.…

【Qt常用控件】—— 输入类控件

目录 1.1 Line Edit 1.2 Text Edit 1.3 Combo Box 1.4 Spin Box 1.5 Date Edit & Time Edit 1.6 Dial 1.7 Slider 1.1 Line Edit QLineEdit是Qt中的一个控件&#xff0c;用于 接收和显示单行文本输入。 核心属性 属性 说明 text 输⼊框中的⽂本 inputMask 输⼊…

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性&#xff0c;这些洞穴提供了相对稳定的条件&#xff0c;可以促进矿物质沉淀和微生物生长。在火星上&#xff0c;这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…

JavaEE 初阶篇-深入了解网络通信相关的基本概念(三次握手建立连接、四次挥手断开连接)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 网络通信概述 1.1 基本的通信架构 2.0 网络通信三要素 3.0 网络通信三要素 - IP 地址 3.1 查询 IP 地址 3.2 IP 地址由谁供应&#xff1f; 3.3 IP 域名 3.4 IP 分…
最新文章