CentOS 7 下 Redis 从 5.0 升级至 7.4.3 全流程实践

目录

  • 前言
  • 1 查看 Redis 运行情况与配置
    • 1.1 查看 Redis 是否正在运行
    • 1.2 连接 Redis 服务并获取配置信息
    • 1.3 查找 redis.conf 配置文件位置
  • 2 关闭旧版本 Redis 实例
    • 2.1 使用客户端命令关闭 Redis
    • 2.2 验证 Redis 是否完全关闭
  • 3 升级 GCC 编译环境
    • 3.1 检查当前 GCC 版本
    • 3.2 安装所需工具及配置软件仓库
    • 3.3 安装并启用 GCC 9 工具集
  • 4 编译安装 Redis 7.4.3
  • 5 配置文件迁移与处理
    • 5.1 备份默认配置文件
    • 5.2 替换为原配置文件
    • 5.3 根据需要修改配置
  • 6 启动 Redis 7.4.3 并验证
    • 6.1 启动 Redis 服务
    • 6.2 查看启动状态
    • 6.3 查看 Redis 当前版本
  • 结语

前言

Redis 是目前使用最广泛的高性能键值数据库之一,广泛应用于缓存、消息队列、实时计数等场景。随着 Redis 版本的不断更新,带来了更高的性能、更丰富的功能和更强的安全性。然而,实际生产环境中,我们常常因为兼容性等原因停留在较旧版本。本文将详细介绍在 CentOS 7 环境下,将 Redis 从 5.0 升级到 7.4.3 的完整流程,涵盖运行状态查看、配置文件处理、GCC 编译环境升级、源码编译安装、以及新版本 Redis 启动验证等步骤,旨在为有类似需求的运维或开发人员提供完整参考。

1 查看 Redis 运行情况与配置

在开始升级之前,首先需要确认旧版本 Redis 的运行状态及其配置信息,确保后续迁移和升级能够顺利进行。
在这里插入图片描述

1.1 查看 Redis 是否正在运行

可以使用 ps 命令配合 grep 查看 Redis 是否已经启动:

ps -ef | grep redis

如果 Redis 正在运行,会显示 redis-server 相关进程信息。

1.2 连接 Redis 服务并获取配置信息

Redis 通常配置了密码和自定义端口,因此需要使用 redis-cli 工具连接:

./redis-cli -p 2021
127.0.0.1:2021> AUTH "330Ue1Kz9WtjcR2h"
OK
127.0.0.1:2021> CONFIG GET *config-file*

通过 CONFIG GET 命令,可以查看 Redis 当前所使用的配置文件路径,以便后续备份和迁移使用。

1.3 查找 redis.conf 配置文件位置

如果无法通过命令查找到配置文件路径,也可以使用 Linux 的 find 命令遍历系统:

find / -name "redis.conf" 2>/dev/null

确认原 Redis 配置文件位置,是升级过程中一个重要环节。

2 关闭旧版本 Redis 实例

在准备部署新版本 Redis 之前,需要先停止旧版本服务,释放端口和资源。

2.1 使用客户端命令关闭 Redis

若 Redis 没有设置密码或已完成认证,可以直接使用 SHUTDOWN 命令关闭:

redis-cli SHUTDOWN

若设置了密码,需要使用 -a 参数进行认证:

redis-cli -a 330Ue1Kz9WtjcR2h SHUTDOWN

若 Redis 使用了自定义端口:

redis-cli -a 330Ue1Kz9WtjcR2h -p 2021 SHUTDOWN

2.2 验证 Redis 是否完全关闭

使用以下命令确认 redis-server 进程是否已退出:

ps aux | grep redis-server

若未显示任何 redis-server 相关信息,说明 Redis 已成功关闭。

3 升级 GCC 编译环境

Redis 7.4.3 源码编译需要 GCC 版本至少为 5,而 CentOS 7 默认提供的 GCC 版本往往较低,因此需手动升级。

3.1 检查当前 GCC 版本

通过命令检查:

gcc -v

如果已是 5.0 或以上版本,可以跳过此步骤;否则继续下列操作。

3.2 安装所需工具及配置软件仓库

安装 yum-utils 工具:

yum install -y yum-utils

编辑 /etc/yum.repos.d/CentOS-SCLo-scl-rh.repoCentOS-SCLo-scl.repo,注释掉 mirrorlist 并添加 baseurl

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
enabled=1
gpgcheck=0

相同处理 centos-sclo-sclo 段。

3.3 安装并启用 GCC 9 工具集

清理缓存并安装开发工具:

yum clean all
yum makecache
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

启用新版 GCC(当前 shell 有效):

scl enable devtoolset-9 bash

设置为永久生效:

echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

4 编译安装 Redis 7.4.3

解压源码包并编译

将下载好的 Redis 安装包解压:

tar -zxvf redis-7.4.3.tar.gz
cd redis-7.4.3

执行编译和安装:

make
make install

此时,redis-serverredis-cli 等执行文件会被安装到系统默认路径中(如 /usr/local/bin)。

5 配置文件迁移与处理

为了兼容原有配置和数据策略,建议复用旧版本 Redis 的配置文件。

5.1 备份默认配置文件

进入 Redis 源码目录:

cd /mnt/redis-7.4.3
cp redis.conf redis.conf_bak

5.2 替换为原配置文件

删除新生成的默认配置文件:

rm redis.conf

复制旧版本 Redis 的配置文件到新目录:

cp /mnt/redis-5.0.3/redis.conf /mnt/redis-7.4.3/redis.conf

5.3 根据需要修改配置

建议检查以下配置项是否适用于新版本:

  • bindport 是否冲突;
  • requirepass 密码是否仍需要;
  • superviseddaemonize 等守护进程相关参数;
  • 日志和数据目录是否正确。

6 启动 Redis 7.4.3 并验证

6.1 启动 Redis 服务

使用配置文件启动 Redis:

/mnt/redis-7.4.3/src/redis-server /mnt/redis-7.4.3/redis.conf

6.2 查看启动状态

通过进程查看命令验证 Redis 是否已成功启动:

ps -ef | grep redis

若输出中包含如下信息,则表示启动成功:

/mnt/redis-7.4.3/src/redis-server *:2021

6.3 查看 Redis 当前版本

执行以下命令,查看 Redis 版本号,确保为 7.4.3:

/mnt/redis-7.4.3/src/redis-server --version

输出示例:

Redis server v=7.4.3 sha=00000000:1 malloc=jemalloc-5.3.0 bits=64 build=828c83d1e8260964

结语

通过以上步骤,我们完成了在 CentOS 7 系统中将 Redis 从 5.0 升级至 7.4.3 的全过程。这一过程不仅涉及软件本身的编译与安装,还包括环境依赖(如 GCC)、配置文件兼容、旧实例安全关闭等关键环节。建议在正式环境升级前,先在测试环境中进行充分验证,并备份好相关配置与数据文件,以确保平稳过渡。

Redis 7.x 在性能、安全、模块化支持等方面相比旧版本有显著提升,建议逐步完成升级,以获得更好的运维体验与系统稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLord: 基于反向数据生成和任务拆解的 Text-to-SQL 企业落地方案

曾在Text-to-SQL方向做过深入的研究,以此为基础研发的DataAgent在B2B平台成功落地,因此作为第一作者,在 The Web Conference (WWW’2025, CCF-A) 会议上发表了相关论文: SQLord: A Robust Enterprise Text-to-SQL Solution via R…

内网搭建NTS服务器

内网搭建NTS服务器 关键字 : ntp nts ipv6 NTS 是 Network Time Security(网络时间安全)的缩写,是 NTP 的一种安全扩展机制。它利用传输层安全(TLS)和相关数据的认证加密(AEAD),为 NTP 的客户…

AD9268、AD9643调试过程中遇到的问题

Ad9268芯片 AD9268是一款双通道、16位、80 MSPS/105 MSPS/125 MSPS模数转换器(ADC)。AD9268旨在支持要求高性能、低成本、小尺寸和多功能的通信应用。双通道ADC内核采用多级差分流水线架构,集成输出纠错逻辑。每个ADC都具有宽带宽、差分采样保持模拟输入放大器&…

用豆包写单元测试

用豆包写单元测试, 输入 vue 模板内容,输入 参考vue模板内容写一个单元测试要求用jest.mock实现构造完成,修复bug。npm run test:unit – tests/unit/views/xxx/xxx.spec.js看下 % Stmts 语句覆盖率:执行到的代码语句占总语句的比…

css样式块重复调用

通译灵码解释。还给了一些示例,包含传参等内容 scss和sass的区别。scss与sass是两种样式编写风格,scss是大括号加;号形式。而sass是缩进的格式使用scss为什么要要安装sass呢。sass是一门css预处理器语言。所以要安装。

【深度学习新浪潮】以图搜地点是如何实现的?(含大模型方案)

1. 以图搜地点的实现方式有哪些? 扫描手机照片中的截图并识别出位置信息,主要有以下几种实现方式: 通过照片元数据获取: 原理:现代智能手机拍摄的照片通常会包含Exif(Exchangeable Image File)元数据。Exif中除了有像素信息之外,还包含了光圈、快门、白平衡、ISO、焦距…

DeepSeek R1 与 V3 的全面对比,两个版本有什么差别?

DeepSeek R1与DeepSeek V3是深度求索(DeepSeek)公司推出的两款定位不同的大语言模型,界面上用户可选择基础模型(V3)、深度思考(R1)、联网搜索。 基础模型(V3)是DeepSeek的标配,没有勾选默认就是基础模型。为了让用户更清晰地了解两款模型的差…

Spring Boot 深度集成 Ollama 指南:从聊天模型配置到生产级应用开发

Spring Boot 深度集成 Ollama 指南:从聊天模型配置到生产级应用开发 前言 在人工智能应用开发中,大语言模型(LLM)的本地化部署需求日益增长。Ollama 作为开源的本地LLM运行平台,支持Mistral、LLaMA等主流模型&#x…

查询oracle进程数和会话数进行优化

查看当前参数配置 首先需要查询当前的 processes 和 sessions 参数值,以确定是否需要调整。 SQL SHOW PARAMETER processes; SHOW PARAMETER sessions; 这些命令可以显示当前实例中允许的最大进程数和会话数 查询当前连接数,查询并发会话 SELECT COUNT…

顶会新方向:卡尔曼滤波+目标检测

卡尔曼虑波+目标检测创新结合,新作准确率突破100%! 一个有前景且好发论文的方向:卡尔曼滤波+目标检测! 这种创新结合,得到学术界的广泛认可,多篇成果陆续登上顶会顶刊。例如无人机竞速系统 Swift,登上nat…

运维自动化工具 ansible 知识点总结

1.Ansible 基础 1.1 Ansible简介 Ansible 是一个开源软件,提供配置管理和应用程序部署等项目通用的管理功能。它主要运行在类 Unix 系统上,通过特性语言来描述各种资源对象,进而管理类 Unix 系统和 Microsoft Windows 系统等系统资源。 官网…

基于python,html,flask,echart,ids/ips,VMware,mysql,在线sdn防御ddos系统

详细视频:【基于python,html,flask,echart,ids/ips,VMware,mysql,在线sdn防御ddos系统-哔哩哔哩】 https://b23.tv/azUqQXe

C语言进阶--数据的存储

1.数据类型介绍 内置类型 char //字符数据类型 1字节 short //短整型 2字节 int //整型 4字节 long //长整型 4/8字节 long long //更长的整型 8字节 (C99中引入的) float //单精度浮点数 4字节 double //双精度浮点数 8字节sizeof(long…

C++学习细节回顾(汇总三)

一.多态概念 同样是动物叫的⼀个⾏为(函数)&#xff0c;传猫对象过去&#xff0c;就是”(>ω<)喵“&#xff0c;传狗对象过去&#xff0c;就是"汪汪"。 1.根据对象不同类型&#xff0c;调用不同函数&#xff0c;这就叫做运行时多态(动态多态) 2.编译时多态(静态…

SpringAI+MCPServer+MCPClient快速入门

SpringAI MCPServer MCPClient 快速入门编写大纲 源代码地址&#xff1a;https://download.csdn.net/download/user_admin_god/90926893 1. 介绍 本文通过使用免费的智普AI的glm-4-flash模型&#xff0c;设计并实现了一个智能问答系统。在该系统中&#xff0c;我们编写了一…

Linux `vi/vim` 编辑器深度解析与高阶应用指南

Linux `vi/vim` 编辑器深度解析与高阶应用指南 一、核心功能解析1. 模式系统2. 与主流编辑器对比二、核心操作体系1. 高效导航命令2. 文本操作矩阵三、高阶配置体系1. .vimrc 配置示例2. 插件管理系统四、企业级开发实践1. 代码编辑技巧2. 宏录制与批量处理五、可视化与多窗口1…

Java五种方法批量处理List元素全解

Java:如何优雅批量处理List中的每个元素 一、场景分析&#xff1a;为什么需要批量处理List&#xff1f;二、核心方法&#xff1a;五种实现方式对比2.1 普通for循环&#xff08;最直接的方式&#xff09;代码示例&#xff1a;优缺点&#xff1a; 2.2 Java 8 replaceAll&#xff…

【Elasticsearch】`_refresh`和`_flush`的区别

在Elasticsearch中&#xff0c;_refresh和_flush操作虽然看似都与“刷新”有关&#xff0c;但它们的功能和作用范围有显著区别&#xff1a; _refresh操作 - 目的&#xff1a;使索引操作&#xff08;如新增、更新、删除文档&#xff09;后的更改能够立即被搜索到。 - 工作原理…

Java核心数据类型:String深度解析(JDK 8+)

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 问题驱动&#xff1a;从用户注册场景说起 场景描述&#xff1a;开发一个用户注册功能时&#xff0c;需要处理用户名的校验、格式化和存储。你可能会遇到…

人员睡岗检测算法AI智能分析网关V4打造工业/安防/交通等多场景应用方案

一、引言​ 在工业生产、安防监控等多领域&#xff0c;众多岗位需员工长时间值守&#xff0c;如流水线工人、监控值班员等。但高强度工作易引发睡岗问题&#xff0c;导致生产效率下降&#xff0c;甚至造成安全事故与财产损失。传统人工巡检响应慢、成本高&#xff0c;难以满足…