阿里云 CentOS 7 升级 Redis 到 7.2 实录-centos7安装redis7

阿里云 CentOS 7 升级 Redis 到 7.2 实录

背景

云端生产机是阿里云 CentOS 7,系统默认装的是 Redis 3.2.12 ,本地开发用的是 5.0.14 。3.2 早就停止安全维护了,决定升级到当前仍在维护周期内的 7.2。

这篇记录把三个源(CentOS-Base、EPEL、Remi)全部用 cat > ... << 'EOF' 的方式一次性写好,避免手改配置出错,也避免网络问题导致 yum 不到。

一、先看现状

bash 复制代码
redis-cli --version
# redis-cli 3.2.12

redis-server --version
# Redis server v=3.2.12

结论很明确:必须升级。

二、重写三个源文件

CentOS 7 已经 EOL,原来的源大多失效。直接用 cat 覆盖成阿里云镜像,EPEL 和 Remi 也一并写好。

1. CentOS-Base.repo

bash 复制代码
cat > /etc/yum.repos.d/CentOS-Base.repo << 'EOF'
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
EOF

2. epel.repo

bash 复制代码
cat > /etc/yum.repos.d/epel.repo << 'EOF'
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
EOF

3. remi.repo

bash 复制代码
cat > /etc/yum.repos.d/remi.repo << 'EOF'
[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=http://cdn.remirepo.net/enterprise/7/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-safe]
name=Remi's Safe RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=http://cdn.remirepo.net/enterprise/7/safe/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=http://cdn.remirepo.net/enterprise/7/php55/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=http://cdn.remirepo.net/enterprise/7/php56/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

[remi-test]
name=Remi's test RPM repository for Enterprise Linux 7 - $basearch
mirrorlist=http://cdn.remirepo.net/enterprise/7/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
EOF

注意:Remi 仓库的 GPG key 需要提前导入,否则 gpgcheck=1 会报错。执行:

bash 复制代码
rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi
rpm --import http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
rpm --import http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

三、清理并重建缓存

bash 复制代码
yum clean all
yum makecache

四、卸载旧版 Redis

bash 复制代码
# 先备份配置和数据(如果有)
cp /etc/redis.conf /etc/redis.conf.bak 2>/dev/null
cp -r /var/lib/redis /var/lib/redis.bak 2>/dev/null

# 卸载
yum remove redis -y

五、安装 Redis 7.2

bash 复制代码
# 从 remi 源安装(remi-safe 已默认启用,remi 需要显式指定)
yum --enablerepo=remi install redis -y

如果提示找不到包,可以先看看 remi 里有哪些版本:

bash 复制代码
yum --enablerepo=remi list redis --showduplicates

六、启动并验证

bash 复制代码
systemctl start redis
systemctl enable redis

redis-server --version
# Redis server v=7.2.5 sha=00000000:00000000:00000000:00000000:00000000 bits=64 build=2dd7a20ee3c6d015

redis-cli ping
# PONG

七、版本兼容性说明

本地 5.0 客户端连云端 7.2 服务端,基本没问题。Redis 命令和协议向后兼容做得很好,常规 GET/SET、Hash、List、Set、ZSet 操作完全无感。

需要留意的 7.x 不兼容变更:

  • Lua 脚本里 print() 被移除
  • 部分错误信息首字母大小写变了
  • ZPOPMIN/ZPOPMAX 在 count 为 0 时行为变化
  • LPOP/RPOP 指定 count 且 key 不存在时返回 null 数组

只要应用没用到这些边缘场景,升级到 7.2 是安全的。

八、总结

核心就三步:

  1. 用 cat > ... << 'EOF' 一次性写好三个源文件
  2. 导入 GPG key,yum clean all && yum makecache
  3. yum --enablerepo=remi install redis -y

7.2 是 Redis 官方的 Extended 维护版本,安全更新持续到 2029 年 12 月,作为生产环境的选择是合适的。

相关推荐
我不会起名字3221 小时前
Redis 缓存与数据库一致性:先删缓存还是先更新库的 4 种方案
数据库·redis·缓存·一致性·延迟双删
xbzb2 小时前
一边装一边报错:CentOS 7 + LNMP 跑 ECShop 的常见故障与解法
linux·运维·centos
ly768913 小时前
Redis 内存优化与性能调优:编码转换、内存碎片与慢查询的定位链路
redis·性能调优·内存优化·慢查询·编码转换
我不会起名字32216 小时前
Redis 入门(三):Spring Boot 整合 Redis,RedisTemplate 实战与序列化乱码
redis·spring·工具类·jedis·lettuce
神秘的猪头16 小时前
Redis 数据结构实战指南:从缓存、点赞、排行榜到消息队列
redis
新鲜势力呀19 小时前
PHP 消息队列实战:从同步接口阻塞到 RabbitMQ + Redis队列 + 异步任务架构完整优化方案
redis·rabbitmq·php
for_ever_love__19 小时前
Redis 持久化讲透:RDB、AOF 与混合持久化怎么选
java·数据库·redis·持久化·aof·区别·rdb
sunoo-22921 小时前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
拾贰_C21 小时前
【English | conversation 】call | 抖音AI短句情景:打电话---come over
数据库·redis·缓存