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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82628.shtml
英文地址,請注明出處:http://en.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;難以滿足…