Redis篇之Redis高可用模式参数调优,提高Redis性能
1. Redis高可用模式核心
Redis高可用模式的核心是使用主从复制和自动故障转移机制来确保系统在某些节点发生故障时仍然可以正常工作。
常用的高可用架构包括Redis Sentinel模式和Redis Cluster模式,其中Sentinel模式是为了提供高可用性而专门设计的解决方案。
在Redis Sentinel模式下,Sentinel负责监控Redis实例,自动进行故障转移并通知客户端。为了优化Redis高可用模式,我们需要关注一些关键的参数配置。
下面我们将讨论Redis Sentinel高可用模式的常见调优参数,并提供调优后的配置文件。
2. Redis高可用模式参数调优
2.1. Redis Sentinel模式的主要参数调优
Redis Sentinel的配置文件和Redis主从复制有一些相似之处,但也有其特有的监控和故障转移相关参数。以下是一些常见的调优参数。
(1) Sentinel配置文件 (sentinel.conf)
在Redis Sentinel模式中,每个Sentinel节点有自己的配置文件。这个配置文件控制了Sentinel的行为,包括故障转移、监控策略和通知机制。
# Sentinel监控主Redis节点的地址与端口
sentinel monitor mymaster 127.0.0.1 6379 2# 配置主节点的宕机时间检测
# 当检测到主节点不可用超过10秒时,Sentinel会认为该主节点宕机
sentinel down-after-milliseconds mymaster 10000# Sentinel故障转移的超时设置
# 如果在10秒内没有完成故障转移,则会放弃
sentinel failover-timeout mymaster 180000# 配置主从切换时,从节点被选举为主节点的最大时间
sentinel parallel-syncs mymaster 1# 配置Sentinel监控主节点和从节点的心跳检测间隔
sentinel client-reconfig-script mymaster /path/to/script.sh# 配置Sentinel报警通知脚本
sentinel notification-script mymaster /path/to/alert.sh# 配置最大失败通知次数
sentinel auth-pass mymaster <password> # 如果启用了Redis的密码保护,Sentinel也需要配置密码# 启动时连接到主Redis实例的配置
# 主要用于初始化Sentinel节点
port 26379# 启用日志记录
logfile "/var/log/redis/sentinel.log"# 配置日志级别
loglevel notice # 记录通知级别日志
(2) Redis主从复制配置文件 (redis.conf)
在Redis的主节点和从节点的配置文件中,需要启用主从复制功能,并且有些参数也对高可用性有影响。
主节点配置 (redis.conf)
# 启用主节点模式
# 不需要特别设置,只需启动Redis作为主节点
bind 0.0.0.0 # 允许从任意IP连接# 启用持久化,可以选择RDB或AOF方式
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec# 最大客户端连接数,防止连接过多导致主节点崩溃
maxclients 10000# 配置Redis的内存上限,防止内存过载
maxmemory 4gb# 设置内存回收策略
maxmemory-policy volatile-lru
从节点配置 (redis.conf)
# 配置从节点,连接到主节点
slaveof 127.0.0.1 6379# 启用从节点的持久化,推荐开启AOF
appendonly yes
appendfsync everysec# 配置最大连接数,确保负载均衡
maxclients 10000# 配置客户端超时,避免长时间无响应的连接占用资源
timeout 3000 # 3秒超时# 启用内存限制
maxmemory 4gb
maxmemory-policy volatile-lru
(3) Redis高可用优化的核心参数解释
sentinel monitor mymaster:该参数用于指定Sentinel监控的主Redis实例。如果Redis Sentinel检测到主节点不可用,则会自动进行故障转移。
sentinel down-after-milliseconds:设置Sentinel监控主节点时,在主节点不可用多少毫秒后,认为该节点是不可用的。默认是30秒,但可以调低此值以加快故障检测。
sentinel failover-timeout:当主节点发生故障时,Sentinel会等待多长时间来完成故障转移操作。默认是180秒,这个值过长可能导致系统长时间不可用,过短可能会导致频繁的故障转移。
sentinel parallel-syncs:该参数控制故障转移期间有多少个从节点可以同时同步主节点数据。调整此参数可以提高故障转移的效率。
maxclients:限制每个Redis实例的最大客户端连接数,避免Redis因处理过多连接而导致资源耗尽。
maxmemory 和 maxmemory-policy:配置内存限制和内存淘汰策略。高可用的Redis实例应该配置合理的内存上限,避免因内存溢出导致实例崩溃。
appendonly 和 appendfsync:启用AOF(Append-Only File)持久化,确保在发生故障时数据不会丢失。appendfsync参数可以选择每秒同步一次,避免对性能的影响。
2.2. 故障转移和主从切换的优化
(1) 设置合理的故障转移时机
合理的故障转移时机对于高可用性至关重要。为了确保在主节点不可用时尽快切换,可以将down-after-milliseconds设置为较低值(例如10秒),以便快速检测到主节点的故障。
(2) 配置合理的并行同步数
sentinel parallel-syncs决定了故障转移期间多少个从节点可以同时同步主节点数据。可以根据集群规模和从节点性能调整此值。通常建议设置为1到2,避免过多从节点同时进行数据同步时造成性能瓶颈。
(3) 增加Sentinel的数量
为了提高Redis高可用性,建议部署多个Sentinel节点,至少三个Sentinel节点。通过投票机制,Sentinel节点可以判断是否进行故障转移,并避免单点故障。
3. 配置文件示例
下面是一个针对Redis高可用模式(主从复制 + Sentinel)的配置文件示例。
主节点 (redis.conf)
bind 0.0.0.0
port 6379# 持久化设置
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync everysec# 最大客户端连接数
maxclients 10000# 内存设置
maxmemory 4gb
maxmemory-policy volatile-lru
从节点 (redis.conf)
bind 0.0.0.0
port 6379# 配置从节点
slaveof 127.0.0.1 6379# 持久化设置
appendonly yes
appendfsync everysec# 最大客户端连接数
maxclients 10000# 内存设置
maxmemory 4gb
maxmemory-policy volatile-lru
Sentinel节点 (sentinel.conf)
port 26379sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1logfile "/var/log/redis/sentinel.log"
loglevel notice# 如果启用了Redis密码保护,配置认证密码
sentinel auth-pass mymaster <password>
4. 总结
Redis高可用模式的调优需要根据实际的硬件资源、网络状况和业务需求来调整参数。
主要优化方向包括故障转移检测、从节点同步速度、客户端连接数限制、内存使用限制等。合理配置这些参数可以大幅提高Redis集群的高可用性和稳定性。
相关文章:
Redis篇之Redis高可用模式参数调优,提高Redis性能
1. Redis高可用模式核心 Redis高可用模式的核心是使用主从复制和自动故障转移机制来确保系统在某些节点发生故障时仍然可以正常工作。 常用的高可用架构包括Redis Sentinel模式和Redis Cluster模式,其中Sentinel模式是为了提供高可用性而专门设计的解决方案。 在Re…...

linux-----进程execl簇函数
execl函数族概述 在Linux中,execl函数族用于在一个进程中加载并执行一个新的程序,它会替换当前进程的地址空间(代码段、数据段、堆和栈等)。这个函数族包括execl、execlp、execle、execv、execvp和execvpe,它们的主要功…...
Vue + ECharts 实现山东地图展示与交互
这篇文章中,我将逐步介绍如何使用 Vue 和 ECharts 实现一个互动式的地图展示组件,其中支持返回上一层地图、点击查看不同城市的详细信息,以及根据数据动态展示不同的统计信息。 效果图:玩转山东地图:用Echarts打造交互…...

【Verilog】UDP用户原语
User-defined primitives 概述基本语法组合逻辑的UDP时序逻辑的UDPUDP 符号表 Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog 不仅定义了语法&…...

问题小记-达梦数据库报错“字符串转换出错”处理
最近遇到一个达梦数据库报错“-6111: 字符串转换出错”的问题,这个问题主要是涉及到一条sql语句的执行,在此分享下这个报错的处理过程。 问题表现为:一样的表结构和数据,执行相同的SQL,在Oracle数据库中执行正常&…...
MyBatis入门的详细应用实例
目录 MyBatis第一章:代理Dao方式的CRUD操作1. 代理Dao方式的增删改查 第二章:MyBatis参数详解1. parameterType2. resultType 第三章:SqlMapConfig.xml配置文件1. 定义properties标签的方式管理数据库的信息2. 类型别名定义 MyBatis 第一章&…...
Sequelize ORM sql 语句工具
Sequelize ORM sql 语句工具 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖(安装 mysql2) npm i sequelize mysql2初始化项目 sequelize init熟悉初始化项目后…...

增强LabVIEW与PLC通信稳定性
在工业自动化系统中,上位机与PLC之间的通信稳定性至关重要,尤其是在数据采集和控制任务的实时性要求较高的场景中。LabVIEW作为常用的上位机开发平台,通过合理优化通信协议、硬件接口、数据传输方式以及系统容错机制,可以大大提升…...
UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏
UDP系统控制器(ShuiYX) 帮助文档 概述 本程序设计用于通过UDP协议接收指令来远程控制计算机的音量、执行特定命令和其他功能。为了确保程序正常工作,请确认防火墙和网络设置允许UDP通信,并且程序启动后会最小化到托盘图标。 命令格式及说明 音量控制…...

NK细胞杀伐功能如何实现?
在人体的免疫系统中,自然杀伐细胞(Natural Killer Cells,简称NK细胞)是一类完全自然的免疫激活力量。它们为人体提供了快速反应能力,不依赖类元的特定识别力,但能直接寻找和毁灭毒病感染细胞和肿瘤细胞。那…...

Ubuntu搭建ES8集群+加密通讯+https访问
目录 写在前面 一、前期准备 1. 创建用户和用户组 2. 修改limits.conf文件 3. 关闭操作系统swap功能 4. 调整mmap上限 二、安装ES 1.下载ES 2.配置集群间安全访问证书密钥 3.配置elasticsearch.yml 4.修改jvm.options 5.启动ES服务 6.修改密码 7.启用外部ht…...

PC寄存器(Program Counter Register)jvm
在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色。以下是对JVM中PC寄存器的详细解释: 一、定义与功能 定义: JVM中的PC寄存器,也被称为程序计数器,是对物理PC寄存器的一种抽象模拟。它用于存储当前线程所执行的字节码指令的地址,即指…...
预览和下载 (pc和微信小程序)
1.微信小程序 预览pdf 或者 图片等 //utils.js 文件//通过接口返回文件链接 打开文档 export default function previewFile({ downLinkUrl, tempFilePath }) {let url "https://" downLinkUrl.replace("http://", "").replace("https:…...

使用 DeepSpeed 微调 OPT 基础语言模型
文章目录 OPT 基础语言模型Using OPT with DeepSpeedmain.py 解析1、导入库和模块2、解析命令行参数3、main 函数3.1 设备与分布式初始化3.2 模型与数据准备3.3 定义评估函数3.4 优化器与学习率调度器设置3.5 使用 deepspeed 进行模型等初始化3.6 训练循环3.7 模型保存 4、dsch…...
BSM和BMS什么区别?
BSM BSM(Battery System Manager)是指用于管理和控制电动车辆的电池系统的设备,其功能包括监测电池状态、控制充放电过程、保护电池安全等。 BMS BMS(Battery Management System)是指用于监测、控制和保护电池组的设…...

使用Maven打包javaagent.jar
1、简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码。 java1.5 之前使用的是JVMTI(jvm tool interface)技术来实现对class的拦截,不过这个是用 C 编写的&#…...

R语言混合模型回归GBTM群组轨迹模型绘图可视化研究
全文链接:https://tecdat.cn/?p38581 在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力(…...

【毕业设计】A079-基于Java的影院订票系统的设计与实现
🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…...
Vue.js前端框架教程11:Vue监听器watch和watchEffect
文章目录 监听器(watchers)基本用法deep: trueimmediate: true总结 watchEffect基本用法自动追踪依赖停止监听与 watch 的对比性能优化总结 监听器(watchers) 在 Vue 中,监听器(watchers)是一种…...

疾风大模型气象系统:精准预报,引领未来
精准预报,引领未来 在当今快速变化的世界中,天气预报已成为日常生活和社会运行中不可或缺的一部分。从规划日常出行到防范极端天气影响,高精准的气象服务正在重新定义我们的生活方式。而在这一领域,疾风大模型气象系统以其卓越的技术实力和领先的预测能力,正引领气象服务…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...