温馨提示×

CentOS上Redis版本如何升级

小樊
45
2025-11-21 20:18:09
栏目: 云计算

CentOS 上升级 Redis 的实用步骤

一 升级前准备

  • 备份关键数据与配置:建议先持久化内存数据并备份配置文件与数据目录,降低回滚成本。示例:redis-cli SAVE 持久化 RDB;备份配置文件 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak;备份数据目录 cp -r /var/lib/redis /var/lib/redis.bak。完成后确认当前版本:redis-server --version。这些步骤能有效避免升级异常导致的数据丢失。

二 方式一 YUM 仓库升级(优先推荐)

  • 适用于希望快速、可回滚、由包管理器维护的场景。步骤概览:
    1. 启用仓库并更新元数据:sudo yum update epel-release,必要时启用包含新版 Redis 的仓库(如 EPELRemi)。
    2. 执行升级:sudo yum install redis(若已安装则为升级)。
    3. 重启服务:sudo systemctl restart redis;如需开机自启:sudo systemctl enable redis
    4. 验证版本:redis-server --versionredis-cli INFO server 查看新版本号与服务状态。
      说明:仓库中 Redis 的版本取决于仓库本身;若仓库版本较旧,可参考下方源码编译方式获取更新版本。

三 方式二 源码编译升级(获取更新或特定版本)

  • 适用于需要特定版本(如 7.x)或仓库版本过旧的情况。步骤概览:
    1. 安装编译依赖:sudo yum groupinstall "Development Tools" -y && sudo yum install -y tcl gcc make
    2. 若目标版本较新(如 7.4.x),CentOS 7 默认 GCC 可能偏低,建议启用 devtoolset-9sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils,并在当前会话启用:scl enable devtoolset-9 bash(可写入 /etc/profile 持久化)。
    3. 下载并编译:
      • 下载源码:wget http://download.redis.io/releases/redis-<version>.tar.gz
      • 解压编译:tar xzf redis-<version>.tar.gz && cd redis-<version> && make && sudo make install
    4. 迁移配置与数据:复用旧配置 cp /etc/redis/redis.conf /etc/redis/redis.conf.bak 并在升级后比对差异;确保 RDB/AOF 数据文件与 dir 配置指向一致。
    5. 使用 systemd 管理(若原系统使用 systemd):创建或更新 /etc/systemd/system/redis.service,示例:
      [Unit]
      Description=Redis In-Memory Data Store
      After=network.target
      
      [Service]
      User=redis
      Group=redis
      ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
      ExecStop=/usr/local/bin/redis-cli shutdown
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      
      然后 sudo systemctl daemon-reload && sudo systemctl enable --now redis
    6. 验证:redis-server --versionredis-cli PINGINFO server 确认版本与可用性。

四 升级后验证与回滚

  • 验证要点:
    • 版本与服务:redis-server --versionredis-cli INFO server 显示新版本;systemctl status redis 状态为 active (running)
    • 数据可用性:连接业务库执行 PINGDBSIZE、关键业务 GET/SET 校验;如有 AOF/RDB 持久化,确认加载正常。
  • 常见问题与处理:
    • 配置项不兼容:新版本可能新增或废弃参数,使用 diff 对比新旧 redis.conf,按官方变更日志逐项调整。
    • 编译依赖不足:升级 GCC(如 devtoolset-9)后重试 make
    • 权限与目录:确认 redis 用户对配置、日志与数据目录具备读写权限。
  • 快速回滚:
    • YUM 场景:sudo yum downgrade redis 恢复到上一版本,然后重启服务。
    • 源码场景:停止服务,将二进制文件与配置还原(如 /usr/local/bin/redis-server/etc/redis/redis.conf),再启动服务。

0