Redis 集群版本升级指南:从 Redis 7 升级到 Redis 8
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.0
make# 安装到指定目录
cd src
make install PREFIX=/app/redis8# 安装测试依赖
yum -y install tcl
make test
3. 确认当前集群状态
# 连接任意节点查看集群信息
/app/redis7/bin/redis-cli -a <密码> -h 192.168.1.1 -p 6380 -c
10.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.bak
cp /data/redis/6383/dump.rdb /data/redis/6383/dump.rdb.bak
cp /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 SHUTDOWN
done# 确认进程终止
ps -ef | grep redis
2. 备份数据与配置
mkdir /data/redis/backup
mv /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}.conf
done
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 协议。
- 监控:升级后观察内存、性能指标及集群状态。