温馨提示×

centos redis版本升级流程

小樊
39
2026-01-04 01:37:18
栏目: 云计算

CentOS Redis 版本升级流程

一 升级前准备

  • 备份数据与配置
    • 连接实例执行持久化:执行 SAVEBGSAVE,确认生成 RDB 文件;通过 CONFIG GET dirCONFIG GET dbfilename 确认备份文件路径与名称,物理拷贝该文件到安全位置。
    • 备份配置文件与目录:如 /etc/redis/redis.conf/var/lib/redis 等。
  • 检查运行状态与版本
    • 查看进程:ps -ef | grep redis-server;查看版本:redis-server --versionredis-cli INFO server
  • 选择升级方式
    • 包管理升级(yum/dnf):简单、可回滚,但版本可能滞后。
    • 源码编译升级:版本可控、可并行安装多版本,便于灰度与回滚。
  • 编译依赖与 GCC
    • 安装编译工具:yum groupinstall “Development Tools” -y && yum install -y tcl
    • CentOS 7 默认 GCC 较低,Redis 6+ 建议 GCC ≥ 5.3;可使用 devtoolset-9(SCL)启用高版本 GCC。

二 方式一 包管理升级 yum/dnf(适合快速升级)

  • 安装/更新 EPEL 与 Remi(示例为 Remi,按需选择仓库):
    • sudo yum install -y epel-release
    • 启用 Remi 仓库(以 Remi 为例,具体按仓库说明启用对应版本)
  • 查看可用版本并安装:
    • 查询:yum list --showduplicates redis
    • 安装指定版本:sudo yum install -y redis-(或更新到仓库最新版:sudo yum update -y redis
  • 重启与验证:
    • 重启:sudo systemctl restart redis
    • 验证:redis-server --versionredis-cli INFO server
  • 回滚思路:使用已保存的旧版 RPM 包或快照/镜像回退,或切换仓库到旧版本后重装。

三 方式二 源码编译升级(版本可控、便于并行与回滚)

  • 安装编译环境(CentOS 7 示例启用 devtoolset-9):
    • 安装工具链:yum install -y yum-utils devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    • 启用高版本 GCC:在当前 shell 执行 scl enable devtoolset-9 bash,或写入 /etc/profile 持久化。
  • 获取并编译新版本:
    • 下载:wget https://download.redis.io/releases/redis-.tar.gz
    • 编译安装:make && make install(默认安装到 /usr/local/bin;如需指定目录:make PREFIX=/opt/redis install)。
  • 迁移配置与数据:
    • 备份新默认配置:cp redis.conf redis.conf.bak
    • 复用旧配置:将旧 redis.conf 拷入新目录并按需调整(如 bind/port、requirepass、daemonize/supervised、logfile、dir 等)。
    • 放置 RDB:将备份的 dump.rdb 放到新配置的 dir 指定目录,确保权限正确。
  • 启动与验证:
    • 启动:/usr/local/bin/redis-server /path/redis.conf(或使用安装前缀路径)
    • 验证:redis-server --versionredis-cli INFO server,并抽样 **redis-cli DBSIZE/KEYS *** 检查数据。

四 主从与集群的平滑升级策略

  • 主从架构
    • 先升级从节点:逐台 shutdown 旧从节点,用新版本启动并接入主节点,观察复制与复制偏移量,确认追平后再升级下一个从节点。
    • 升级主节点:选择一个从节点切换为主(如手动故障转移或调整复制拓扑),升级原主节点后重新加入作为从节点。
  • 集群架构
    • 利用集群特性:一次只对一个分片的 从节点 进行替换升级,待其与主节点追平后,再对该分片的 主节点 进行升级;逐分片滚动完成全集群升级。
    • 升级期间保持副本可用,尽量在业务低峰窗口操作,并做好回滚预案。

五 回滚与验证清单

  • 快速回滚
    • 包管理:切回旧版本仓库后 yum downgrade redis 或重装旧包;
    • 源码:停止新实例,恢复旧版 redis-server/redis-cliredis.conf,将 RDB 放回原 dir 后启动旧实例。
  • 验证要点
    • 版本:redis-server --versionINFO server
    • 数据:抽样 DBSIZE/SCAN/GET 校验关键数据;
    • 复制/集群:INFO replication(主从偏移量一致)、CLUSTER NODES/INFO cluster(集群状态正常);
    • 日志与告警:检查 logfile 无异常,监控告警恢复正常。

0