Redis Cluster滚动更新
文章目录
说明
- redis cluster 各个节点从 6.2.6 升级至 6.2.16
环境说明
- 三台机器交叉部署三主三从的 redis cluster 节点
- 当前 cluster nodes 信息如下
|
|
- 部署信息
访问地址 | 部署服务器 | 主机名 | 部署路径 | 部署用户 | 角色 |
---|---|---|---|---|---|
192.168.212.81:6378 | 192.168.212.81 | c1 | /data/redis/redis_6378 | redis | master |
192.168.212.81:6379 | 192.168.212.81 | c1 | /data/redis/redis_6379 | redis | slave |
192.168.212.82:6378 | 192.168.212.82 | c2 | /data/redis/redis_6378 | redis | master |
192.168.212.82:6379 | 192.168.212.82 | c2 | /data/redis/redis_6379 | redis | slave |
192.168.212.83:6378 | 192.168.212.83 | c3 | /data/redis/redis_6378 | redis | master |
192.168.212.83:6379 | 192.168.212.83 | c3 | /data/redis/redis_6379 | redis | slave |
- redis 部署目录说明
- bin:存储 redis 编译后二进制
- data:存储 aof 和 rdb 日志
- etc:存储 redis 配置文件
- logs:存储 redis 日志
|
|
- 当前 redis 版本
|
|
操作说明
- 重新编译生成 6.2.16 的 redis 二进制文件
- 替换当前正在运行的 redis 的 bin 目录
- 重启 redis 节点
redis cluster 写入测试数据
- 执行如下 shell 命令写入 10w 测试数据
|
|
滚动升级
- 针对连续性要求比较高的情况,可以先升级从节点,然后主节点触发切主,然后继续升级剩余节点,参照plan1
- 针对能接受闪断的场景,可替换 bin 目录下二进制文件后,可直接重启redis服务,参照 plan2
Plan1
- 说明
- 先升级三个 slave 节点
- slave 节点升级后,将 slave 节点提升为 master
- 更新剩余未更新节点
升级 slave 节点
- 三个 slave 节点依次操作,具体端口及服务名,根据实际情况进行更改
- 上传新版本 redis 安装包
- 下载地址:https://download.redis.io/releases/
|
|
- 解压
|
|
- 编译
|
|
- 备份 redis bin 目录
|
|
- 关闭 redis_6379,替换 bin 目录下文件
|
|
- 启动 redis_6379
|
|
- 检查,连接 redis 的命令根据自己升级的节点进行更改
|
|
master 节点切主
- 依次对从节点执行 CLUSTER FAILOVER,进行切主
|
|
- 查看当前集群状态,可知之前为 slave 角色的节点,现在已经变成了 master
|
|
继续升级剩余节点
- 由于slave/master交叉部署,一天机器上同时有主/从节点,之前升级节点时已编译过 redis,无需重新编译
- 备份 redis bin 目录
|
|
- 关闭 redis_6379,替换 bin 目录下文件
|
|
- 启动 redis_6378
|
|
- 检查,连接 redis 的命令根据自己升级的节点进行更改
|
|
- 至此,升级完成
Plan2
- 不关闭redis,依次替换 reids 下 bin 目录二进制文件后重启 redis
依次升级
- 三台实例均需执行,以 c1 实例为例
- 上传新版本 redis 安装包
- 下载地址:https://download.redis.io/releases/
|
|
- 解压
|
|
- 编译
|
|
- 备份 redis_6379 bin 目录
|
|
- redis_6379 替换 bin 目录下文件
|
|
- 重启 redis_6379
|
|
- 备份 redis_6378 bin 目录
|
|
- redis_6378 替换 bin 目录下文件
|
|
- 重启 redis_6378
|
|
- 检查 redis cluster 状态
- 主节点在重启时发生闪断,但并没有触发切主
|
|
- 查看 redis 版本
|
|
- 至此,该节点上 redis 升级完成
文章作者 Xiang
上次更新 2024-12-05