Redis 集群版本升级指南:从 Redis 7 升级到 Redis 8_redis8
Redis 集群升级主要有两种方案:
1、在线滚动升级(无需停机)
2、停机升级(需停止服务)
一、准备工作
1. 下载 Redis 8 安装包
# Redis 8.0.0 示例(请替换为实际版本)http://download.redis.io/releases/redis-8.0.0.tar.gz
2. 编译安装 Redis 8
# 解压并编译tar xf redis-8.0.0.tar.gz -C /app/cd /app/redis-8.0.0make# 安装到指定目录cd srcmake install PREFIX=/app/redis8# 安装测试依赖yum -y install tclmake test
3. 确认当前集群状态
# 连接任意节点查看集群信息/app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6380 -c10.0.0.10:6380> CLUSTER NODES
二、在线滚动升级方案
1. 升级从节点(以 6383 为例)
# 关闭从节点/app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6383 SHUTDOWN# 备份数据与配置cp /data/redis/6383/appendonly.aof /data/redis/6383/appendonly.aof.bakcp /data/redis/6383/dump.rdb /data/redis/6383/dump.rdb.bakcp /app/redis7/etc/redis6383.conf /app/redis7/etc/redis6383.conf.bak# 使用 Redis 8 启动进程/app/redis8/bin/redis-server /app/redis7/etc/redis6383.conf# 重新加入集群(使用旧版客户端)/app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6381 \\CLUSTER MEET 10.0.0.10 6383# 恢复主从关系/app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6383 \\CLUSTER REPLICATE <主节点ID># 验证版本/app/redis8/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6383 INFO SERVER
2. 主从切换
# 在升级后的从节点执行故障转移/app/redis8/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6383 CLUSTER FAILOVER# 检查主从关系/app/redis8/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6380 CLUSTER NODES
3. 升级原主节点
重复从节点升级步骤,逐步完成所有主节点升级。
三、停机升级方案
1. 停止集群服务
# 关闭所有节点(先从节点后主节点)for port in 6383 6384 6385 6380 6381 6382; do /app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p $port SHUTDOWNdone# 确认进程终止ps -ef | grep redis
2. 备份数据与配置
mkdir /data/redis/backupmv /data/redis/638*/*.aof /data/redis/backup/mv /data/redis/638*/*.rdb /data/redis/backup/
3. 启动 Redis 8 进程
# 使用 Redis 8 启动所有节点for port in 6380 6381 6382 6383 6384 6385; do /app/redis8/bin/redis-server /app/redis7/etc/redis${port}.confdone
4. 重建集群
# 使用 Redis 8 创建新集群/app/redis8/bin/redis-cli -a <密码> --cluster create \\192.168.1.1:6380 192.168.1.1:6381 192.168.1.1:6382 \\192.168.1.1:6383 192.168.1.1:6384 192.168.1.1:6385 \\--cluster-replicas 1 --cluster-yes
四、验证与回滚
1. 验证升级
# 检查版本与集群状态/app/redis8/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6380 INFO SERVER/app/redis8/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6380 CLUSTER INFO
2. 回滚方案
- 在线滚动升级:逐节点降级至 Redis 7,重新加入集群。
- 停机升级:停止 Redis 8 进程,恢复备份数据,重启 Redis 7。
五、注意事项
- 版本兼容性:确保 Redis 8 兼容旧版数据格式,建议先在测试环境验证。
- 配置更新:检查
redis.conf
中新增参数(如cluster-allow-replica-migration
)。 - 客户端兼容性:确保应用客户端支持 Redis 8 协议。
- 监控:升级后观察内存、性能指标及集群状态。