温馨提示×

Redis在Ubuntu上如何升级

小樊
65
2025-09-29 19:18:42
栏目: 云计算

Redis在Ubuntu上的升级流程

1. 升级前准备

  • 备份数据:升级前必须备份Redis数据,防止操作失误导致数据丢失。常用命令:redis-cli SAVE(生成RDB快照)或复制/var/lib/redis目录下的AOF文件(若启用了AOF持久化)。
  • 检查当前版本:通过redis-server --versionredis-cli --version确认当前Redis版本,明确升级目标(如从6.2升级到7.0)。
  • 查阅升级文档:查看Redis官方发布的版本升级指南(如从6.x升级到7.x),重点关注不兼容变更(如配置参数调整、命令弃用、ACL规则变化),避免升级后出现功能异常。

2. 卸载旧版本(可选但推荐)

若当前Redis是通过Ubuntu默认源(apt)安装的,建议先卸载旧版本以清除残留配置:

sudo apt-get remove --purge redis-server  # 卸载redis-server及依赖
sudo rm -rf /etc/redis/ /var/lib/redis/   # 删除旧配置文件和数据目录(谨慎操作,提前备份)

3. 安装依赖工具

编译Redis源码或安装某些功能(如TCL脚本支持)需要提前安装依赖:

sudo apt update
sudo apt install -y build-essential tcl   # 编译Redis必需的工具链

4. 升级Redis(两种方式)

方式一:通过APT包管理器升级(推荐,适用于常规版本)

若目标版本是Ubuntu官方源支持的稳定版(如Redis 6.x、7.x),可通过apt直接升级,步骤简单且易维护:

sudo apt update                           # 更新软件包列表
sudo apt install redis-server             # 安装最新版本的redis-server

升级完成后,系统会自动保留旧版本的配置文件(若有修改,需手动合并),并通过systemctl管理服务。

方式二:源码编译升级(适用于特定版本或最新开发版)

若官方源中没有所需版本(如Redis 7.4+),可通过源码编译安装:

# 下载源码(以Redis 7.0.12为例,替换为目标版本)
cd /usr/local/src
sudo wget https://download.redis.io/releases/redis-7.0.12.tar.gz
sudo tar xzvf redis-7.0.12.tar.gz
cd redis-7.0.12

# 编译并安装
sudo make clean                         # 清理旧编译文件(可选)
sudo make                               # 编译Redis
sudo make test                          # 运行测试(可选,验证编译正确性)
sudo make install                       # 安装Redis到系统目录(默认/usr/local/bin)

5. 配置新版本Redis

  • 复制配置文件:将旧版本的配置文件(若有备份)复制到新位置,或使用默认配置:
    sudo mkdir -p /etc/redis                # 创建配置文件目录
    sudo cp /usr/local/src/redis-7.0.12/redis.conf /etc/redis/  # 复制默认配置
    
  • 调整配置:根据新版本要求修改/etc/redis/redis.conf,常见调整项:
    • 后台运行:确保daemonize yes(新版本默认开启);
    • 绑定IPbind 127.0.0.1(仅本地访问,生产环境需根据需求调整);
    • 持久化:确认save规则(如save 900 1表示900秒内至少1次修改则保存)和appendonly yes(启用AOF);
    • ACL配置:若升级到7.0+,需检查aclfile路径(默认/etc/redis/users.acl)并配置用户权限。

6. 启动新版本并验证

  • 启动Redis服务
    sudo systemctl restart redis-server     # 重启Redis服务
    sudo systemctl enable redis-server      # 设置开机自启
    
  • 检查服务状态
    sudo systemctl status redis-server      # 查看服务运行状态(应为“active (running)”)
    
  • 验证版本
    redis-server --version                  # 输出新版本号(如Redis server v=7.0.12)
    redis-cli ping                          # 测试客户端连接(返回“PONG”表示正常)
    

7. 回滚计划(可选)

若升级后出现严重问题(如服务无法启动、数据损坏),可通过以下步骤回滚:

  1. 停止新版本Redis服务:sudo systemctl stop redis-server
  2. 恢复旧版本配置文件和数据:将备份的/etc/redis/redis.conf/var/lib/redis/数据复制回原位置;
  3. 重新安装旧版本Redis(通过apt指定版本,如sudo apt install redis-server=6:6.2.6-1);
  4. 启动旧版本服务:sudo systemctl start redis-server

0