0

0

Redis怎样升级集群节点的版本_采用逐个主从切换、升级从库再切回主库的滚动升级策略

P粉602998670

P粉602998670

发布时间:2026-03-18 11:19:31

|

406人浏览过

|

来源于php中文网

原创

因为直接停主节点会触发自动故障转移,导致槽位迁移、连接中断和写丢失;必须先升级从节点并确认完全同步后手动切换角色,确保每个分片始终有可用主节点在线。

redis怎样升级集群节点的版本_采用逐个主从切换、升级从库再切回主库的滚动升级策略

Redis集群滚动升级时,为什么不能直接停掉主节点再升级?

因为直接停主节点会触发集群自动故障转移,可能引发槽位迁移、客户端连接中断、写丢失——尤其在高负载下,从节点复制积压没追平就切主,replica-repl-offset 落后会导致数据不一致。

滚动升级的核心逻辑是:**保持每个分片(slot range)始终有可用主节点在线**。所以必须先让从节点升到新版本、确认可服务、再手动切换角色,而非依赖故障转移。

  • 升级前确保所有从节点 INFO replication 中的 master_repl_offsetslave_repl_offset 差值为 0(即完全同步)
  • 禁止在升级过程中执行 CLUSTER FAILOVER 或手动 CLUSTER REPLICATE,避免槽位状态混乱
  • 客户端需支持 MOVED/ASK 重定向,且连接池要能自动刷新集群拓扑(如 JedisCluster 的 refreshClusterNodes

如何安全地把一个 Redis 从节点升级到新版本并接管主节点?

关键不是“升级”,而是“升级后验证+角色切换”。升级本身只是替换二进制、重启进程;真正风险在切换瞬间的状态一致性。

  • 停掉目标从节点:用 redis-cli -p <port> shutdown</port>,不要 kill -9
  • 替换 redis-server 二进制,检查 redis-server --version 确认版本正确
  • 用原配置启动:确保 slaveof 配置仍指向旧主,且 cluster-enabled yes 未被意外关闭
  • INFO replication 显示 master_link_status:upslave_repl_offset == master_repl_offset
  • 执行 redis-cli -p <port> cluster failover takeover</port>(注意:必须加 takeover,否则只是模拟切换)

切换后立刻检查:CLUSTER NODES 中该节点 role 是否变为 master,且其负责的 slot 数与之前主节点一致。

AIPURE
AIPURE

AIPURE帮您轻松找到2024年最佳AI工具

下载

升级过程中遇到 CLUSTERDOWN Hash slot not served 怎么办?

这是集群元数据没及时同步的典型表现,常见于切换后旧主还没退出集群视图,或客户端缓存了过期的 slots map。

  • 在新主节点上执行 CLUSTER FORGET <old-master-node-id></old-master-node-id>(如果旧主已下线但仍在节点列表中)
  • 强制刷新集群状态:所有节点执行 CLUSTER RESET HARD(仅限维护窗口内,会清空本地 slots 缓存)
  • 客户端侧必须调用 redisClient.refreshClusterNodes()(Lettuce)或触发 JedisClusterreset(),不能靠超时自动恢复
  • 检查 cluster-require-full-coverage no 是否开启——生产环境建议设为 yes,避免部分 slot 不可用时整个集群拒绝写入

升级后延迟突增或内存暴涨,可能是什么配置没对齐?

新旧版本默认配置差异常被忽略,比如 maxmemory-policy 在 Redis 6.2+ 默认是 noeviction,而老版本可能是 allkeys-lru;又比如 active-defrag-threshold-lower 在 7.0 后行为变更。

  • 对比新旧版本的 redis.conf,重点关注:maxmemory-policyrepl-backlog-sizeactive-defrag-cycle-mincluster-node-timeout
  • 升级后首次启动时加 --check-rdb 参数验证 AOF/RDB 兼容性(尤其跨大版本如 5.x → 7.x)
  • 观察 INFO memory 中的 mem_allocator:若从 jemalloc 变成 libc,可能因内存分配策略不同导致 RSS 暴涨

最易被跳过的一步:升级完所有节点后,必须在任意节点执行 CLUSTER INFO,确认 cluster_state:okcluster_known_nodes 等于预期总数——少一个节点,就少一份容错能力。

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

510

2023.11.27

golang map内存释放
golang map内存释放

本专题整合了golang map内存相关教程,阅读专题下面的文章了解更多相关内容。

77

2025.09.05

golang map相关教程
golang map相关教程

本专题整合了golang map相关教程,阅读专题下面的文章了解更多详细内容。

41

2025.11.16

golang map原理
golang map原理

本专题整合了golang map相关内容,阅读专题下面的文章了解更多详细内容。

67

2025.11.17

java判断map相关教程
java判断map相关教程

本专题整合了java判断map相关教程,阅读专题下面的文章了解更多详细内容。

47

2025.11.27

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1010

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

675

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

501

2024.04.02

Python WebSocket实时通信与异步服务开发实践
Python WebSocket实时通信与异步服务开发实践

本专题聚焦 Python 在实时通信场景中的开发实践,系统讲解 WebSocket 协议原理、长连接管理、消息推送机制以及异步服务架构设计。内容包括客户端与服务端通信实现、连接稳定性优化、消息队列集成及高并发处理策略。通过完整案例,帮助开发者构建高效稳定的实时通信系统,适用于聊天应用、实时数据推送等场景。

3

2026.03.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号