【保姆级教程】CentOS 7.5/RHEL 7.x 编译安装 Redis 6.0.1

【保姆级教程】CentOS 7.5/RHEL 7.x 编译安装 Redis 6.0.1

  • [【保姆级教程】CentOS 7.5/RHEL 7.x 编译安装 Redis 6.0.1](#【保姆级教程】CentOS 7.5/RHEL 7.x 编译安装 Redis 6.0.1)
    • 一、环境说明
    • 二、环境准备
      • [1. 安装基础依赖](#1. 安装基础依赖)
      • [2. 升级 GCC(关键步骤)](#2. 升级 GCC(关键步骤))
    • [三、下载并解压 Redis 源码](#三、下载并解压 Redis 源码)
      • [1. 下载源码包](#1. 下载源码包)
      • [2. 解压源码包](#2. 解压源码包)
    • [四、编译与安装 Redis](#四、编译与安装 Redis)
      • [1. 编译源码](#1. 编译源码)
        • [常见问题处理:jemalloc 报错](#常见问题处理:jemalloc 报错)
      • [2. 安装到指定目录](#2. 安装到指定目录)
    • [五、Redis 核心配置](#五、Redis 核心配置)
      • [1. 创建配置目录](#1. 创建配置目录)
      • [2. 修改核心配置](#2. 修改核心配置)
      • [3. 创建数据目录](#3. 创建数据目录)
    • [六、启动 Redis 并验证](#六、启动 Redis 并验证)

【保姆级教程】CentOS 7.5/RHEL 7.x 编译安装 Redis 6.0.1

Redis 作为高性能的键值对数据库,广泛应用于缓存、消息队列等场景。Redis 6.x 版本相比 5.x 新增了很多实用特性,但对编译环境有更高要求(GCC ≥ 5),而 CentOS 7.x 系统默认 GCC 版本为 4.8.5,无法直接编译。

本文将从环境准备、编译安装、配置优化,完整讲解 Redis 6.0.1 在 Linux 7.x 系统的部署流程,全程实测可复现。

一、环境说明

  • 操作系统:CentOS 7.5 / RHEL 7.x(x86_64)
  • Redis 版本:6.0.1
  • 核心要求:GCC 版本 ≥ 5(需手动升级)

二、环境准备

1. 安装基础依赖

首先安装编译所需的基础工具,执行以下命令:

bash 复制代码
yum install -y gcc gcc-c++ make wget
  • gcc/gcc-c++:C/C++ 编译工具(Redis 基于 C 开发)
  • make:编译构建工具
  • wget:用于下载 Redis 源码包

2. 升级 GCC(关键步骤)

此处若需配置 yum 源,可参考《CentOS 7.5/RHEL 7.x 配置 YUM 源

Redis 6.x 对 GCC 版本要求较高,CentOS 7.x 默认 GCC 4.8.5 无法满足编译需求,需通过 SCL(Software Collections)升级到 GCC 9:

bash 复制代码
# 安装 SCL 源配置包
yum install -y centos-release-scl
# 安装 GCC 9 工具集
yum install -y devtoolset-9
# 临时启用 GCC 9(当前会话生效)
scl enable devtoolset-9 bash
# 验证 GCC 版本(需显示 9.x)
gcc -v

注意:scl enable devtoolset-9 bash 仅临时生效,若需永久生效,可执行 echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile && source /etc/profile

三、下载并解压 Redis 源码

1. 下载源码包

切换到 /usr/local 目录(Linux 常用软件安装目录),下载 Redis 6.0.1 源码:

bash 复制代码
cd /usr/local
wget http://download.redis.io/releases/redis-6.0.1.tar.gz

若 wget 下载慢,可手动下载源码包上传至服务器 /usr/local 目录。

2. 解压源码包

bash 复制代码
tar -zxvf redis-6.0.1.tar.gz
cd redis-6.0.1

解压后进入源码目录,后续编译操作均在此目录执行。

四、编译与安装 Redis

1. 编译源码

执行编译命令:

开启 4 个线程并行执行。

bash 复制代码
make -j 4
常见问题处理:jemalloc 报错

若编译时出现 jemalloc/jemalloc.h: No such file or directory 错误,是因为 Redis 默认使用 jemalloc 内存分配器,系统缺少相关依赖,执行以下命令重新编译:

bash 复制代码
make MALLOC=libc

2. 安装到指定目录

将 Redis 安装到 /usr/local/redis 目录(便于管理):

bash 复制代码
make install PREFIX=/usr/local/redis

安装完成后,/usr/local/redis/bin 目录下会生成 Redis 核心可执行文件(如 redis-serverredis-cli)。

五、Redis 核心配置

1. 创建配置目录

Redis 源码包中的 redis.conf 是默认配置文件,需复制到安装目录的配置文件夹中:

bash 复制代码
# 创建配置目录
mkdir -p /usr/local/redis/etc
# 复制默认配置文件
cp redis.conf /usr/local/redis/etc/

2. 修改核心配置

编辑配置文件 /usr/local/redis/etc/redis.conf

bash 复制代码
vim /usr/local/redis/etc/redis.conf

重点修改以下参数(注释为原配置,替换为新值):

conf 复制代码
# 1. 后台运行(默认前台运行,关闭终端则Redis停止)
daemonize yes

# 2. 绑定IP(注释掉允许所有IP访问,仅本机访问则保留)
# bind 127.0.0.1

# 3. 关闭保护模式(远程访问必须关闭)
protected-mode no

# 4. 指定端口(默认6379,可自定义)
port 6379

# 5. 日志文件路径
logfile "/usr/local/redis/redis.log"

# 6. 数据存储目录(需手动创建)
dir /usr/local/redis/data

# 7. 设置访问密码(强烈建议,替换为自己的密码)
requirepass 123456

3. 创建数据目录

根据配置文件中的 dir 参数,创建数据存储目录:

bash 复制代码
mkdir -p /usr/local/redis/data

六、启动 Redis 并验证

1. 启动 Redis

通过指定配置文件启动 Redis:

bash 复制代码
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

2. 验证启动状态

方式1:查看进程
bash 复制代码
ps -ef | grep redis

若输出包含 redis-server *:6379,说明启动成功。

方式2:查看端口监听
bash 复制代码
netstat -lntp | grep 6379

若输出 tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN xxx/redis-server,说明端口正常监听。

3. 连接 Redis 测试

bash 复制代码
# 进入Redis客户端
[root@localhost etc]# /usr/local/redis/bin/redis-cli -h 192.168.88.15 -p 6379 -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.88.15:6379> 
192.168.88.15:6379> set test "hello redis"
OK
192.168.88.15:6379> get test
"hello redis"
192.168.88.15:6379> 

若有转载,请标明出处:https://blog.csdn.net/CharlesYuangc/article/details/159214870

相关推荐
RisunJan2 小时前
Linux命令-mail (发送和接收电子邮件)
linux·服务器
万象.2 小时前
Linux套接字socket编程(含TCP,UDP)
linux·tcp/ip·udp
finegx2 小时前
反汇编objdump和strace学习
linux·经验分享·学习
朱一头zcy2 小时前
[Win11家庭中文版]如何关闭基于虚拟化的安全性VBS(为了解决VBS启用状态下 VMware性能很差 频繁闪退或有各种不一样的崩溃报错)
linux·经验分享·vbs
xlp666hub2 小时前
【Linux驱动实战】:带参数的内核模块
linux·c
芥子沫2 小时前
Linux下编程有什么优势?
linux·运维·服务器
REDcker2 小时前
Linux systemd发展演进与实战指南
linux·运维·服务器
白太岁2 小时前
Linux 进程调度模块
linux·运维·服务器
17(无规则自律)2 小时前
【Linux驱动实战】:最简单的内核模块
linux·c语言·驱动开发·嵌入式硬件