Linux 下从源码安装和配置 Redis 7.2.3 的详细步骤。这个过程分为几个主要部分:安装依赖 、编译安装 、基本配置 、系统服务集成 和 基本测试。
文章目录
[1、创建 Redis 用户和组(为了安全,不以 root 用户运行):](#1、创建 Redis 用户和组(为了安全,不以 root 用户运行):)
[2、创建 systemd 服务文件:](#2、创建 systemd 服务文件:)
[4、重新加载 systemd 配置并启动 Redis 服务:](#4、重新加载 systemd 配置并启动 Redis 服务:)
[5、设置 Redis 开机自启:](#5、设置 Redis 开机自启:)
[6、检查 Redis 服务状态:](#6、检查 Redis 服务状态:)
[第二步:重新编译 Redis 并启用 systemd 支持](#第二步:重新编译 Redis 并启用 systemd 支持)
[第三步:修改 systemd 服务文件](#第三步:修改 systemd 服务文件)
[1、使用 Redis 命令行客户端连接:](#1、使用 Redis 命令行客户端连接:)
[3、测试基本的 set 和 get 操作:](#3、测试基本的 set 和 get 操作:)
前言
第一步:准备工作与安装依赖
- 进入下载目录
创建一个安装路径并将安装包下载到此目录,我们后续的操作也在这里进行。
XML
cd /root/wp/redis
2.安装编译依赖
Redis 是使用 C 语言编写的,因此需要 gcc
编译器。此外,构建系统需要 make
。我们还需要 systemd
相关的开发包(如果您希望将 Redis 作为系统服务管理)。
- 对于 CentOS / RHEL / Rocky Linux / AlmaLinux:
XML
yum update -y
yum install -y gcc make systemd-devel
- 对于 Ubuntu / Debian:
XML
apt update -y
apt install -y gcc make libsystemd-dev pkg-config
第二步:编译与安装
1.使用 wget
下载 Redis 源代码压缩包:
XML
sudo wget https://download.redis.io/releases/redis-7.2.3.tar.gz
wget
命令说明:
-
wget
是一个非交互式的网络下载工具。 -
它会在后台直接下载文件到当前目录。
-
如果下载中断,可以使用
wget -c
命令来断点续传。
2.解压源码包
XML
sudo tar xzf redis-7.2.3.tar.gz
3.进入解压后的目录:
XML
cd redis-7.2.3
4.编译源码
这个命令会编译 Redis 的可执行文件。-j
参数可以根据您的 CPU 核心数加速编译,例如 -j4
表示使用 4 个核心。
XML
make -j$(nproc)
$(nproc)
会自动获取您系统的 CPU 核心数。
如果编译过程出现错误,通常是因为依赖问题,请确保第一步的准备工作已完成。
5.运行测试(可选但推荐)
这一步可以验证编译是否正确。需要 tcl
依赖。
-
CentOS/RHEL 等:
yum install -y tcl
-
Ubuntu/Debian 等:
apt install -y tcl
XML
make test
测试过程可能需要几分钟。如果出现 \o/ All tests passed without errors!
则说明一切正常。

6.安装到系统目录
这会将 Redis 的可执行文件(如 redis-server
, redis-cli
)复制到系统的 /usr/local/bin/
目录下,这样就可以在任意位置直接运行它们。

7.验证安装
XML
# 检查安装结果
ls -la /usr/local/bin/redis-server
/usr/local/bin/redis-server --version
# 测试基本功能
redis-cli --version
#启动服务
redis-server redis.conf
#停止服务
pkill redis


第三步:基本配置
现在 Redis 已经可以运行了,但默认配置不适合生产环境。我们需要创建一个配置文件并进行修改。
1.创建配置目录和工作目录
XML
mkdir -p /etc/redis
mkdir -p /var/lib/redis
-
/etc/redis
:存放配置文件。 -
/var/lib/redis
:存放 Redis 的持久化数据(RDB/AOF 文件)。
2.复制默认配置文件到系统目录
XML
cp /root/wp/redis/redis-7.2.4/redis.conf /etc/redis/redis.conf
3. 编辑配置文件
使用 vi
或 nano
等编辑器修改配置文件。
XML
vi /etc/redis/redis.conf
找到并修改以下关键配置项:
- 设置为守护进程(后台运行):
XML
daemonize yes
- 设置持久化文件(RDB/AOF)目录:
XML
dir /var/lib/redis
- 日志文件路径:指定日志文件位置。
XML
logfile /var/log/redis_6379.log
- 设置密码(强烈建议): 找到
# requirepass foobared
这一行,取消注释并将foobared
改为一个强密码。
XML
requirepass your_strong_password_here
- 如果需要远程访问(谨慎开启) 绑定 IP:为了安全,默认只监听本地回环地址。如果您需要从其他服务器访问,请设置服务器的 IP 地址,或注释掉这一行(有安全风险)。
XML
bind 127.0.0.1 -::1
# 如果只需本地访问,保持原样即可。
# 如果需要远程访问,可以注释掉这行(不推荐)或设置为 `bind 0.0.0.0 -::1`(并务必设置密码)。
- 保护模式: 如果既没有设置密码也没有明确绑定 IP,保护模式会阻止外部访问。如果打算远程访问且设置了密码,可以关闭它,但更推荐使用
bind
和requirepass
。
XML
protected-mode yes
修改完成后,保存并退出编辑器。
4.设置目录权限
XML
sudo chown -R redis:redis /var/lib/redis
注意:你需要先创建一个名为 redis
的用户和用户组(下一步会做)。
第四步:创建系统服务(推荐)
为了方便管理(启动、停止、开机自启),我们创建一个 systemd 服务。
1、创建 Redis 用户和组(为了安全,不以 root 用户运行):
XML
sudo groupadd redis
sudo useradd -r -g redis -s /bin/false redis
2、创建 systemd 服务文件:
XML
sudo nano /etc/systemd/system/redis.service
3、将以下内容写入服务文件:
XML
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
保存并退出。
4、重新加载 systemd 配置并启动 Redis 服务:
XML
sudo systemctl daemon-reload
sudo systemctl start redis
5、设置 Redis 开机自启:
XML
sudo systemctl enable redis
6、检查 Redis 服务状态:
XML
sudo systemctl status redis
如果看到 active (running)
字样,说明 Redis 已经成功启动。
很遗憾! 我这没有看到~ 看到了别的信息:
XML
[root@postgresql redis]# systemctl daemon-reload
[root@postgresql redis]# systemctl start redis
[root@postgresql redis]# systemctl enable redis
[root@postgresql redis]# systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
Active: deactivating (stop-sigterm) since 四 2025-09-25 20:40:40 CST; 10s ago
Main PID: 23168 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/redis.service
└─23169 /usr/local/bin/redis-server 0.0.0.0:6379
9月 25 20:40:40 postgresql systemd[1]: Started Redis persistent key-value database.
9月 25 20:40:40 postgresql redis-server[23168]: 23168:C 25 Sep 2025 20:40:40.824 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it...
9月 25 20:40:40 postgresql redis-server[23168]: 23168:C 25 Sep 2025 20:40:40.824 # systemd supervision requested or auto-detected, but Redis is compiled without libsystemd support!
Hint: Some lines were ellipsized, use -l to show in full.
服务状态显示 deactivating (stop-sigterm)
,这意味着 Redis 服务正在关闭过程中。从日志中可以看到两个关键问题:
问题分析及解决方案
-
主要问题 :
Redis is compiled without libsystemd support!
- Redis 编译时缺少 systemd 支持 -
次要警告:内存过载提交设置警告
第一步:停止当前服务
XML
sudo systemctl stop redis
第二步:重新编译 Redis 并启用 systemd 支持
1、安装 systemd 开发库:
CentOS/RHEL/Fedora:
XML
sudo yum install -y systemd-devel
Ubuntu/Debian:
XML
sudo apt install -y libsystemd-dev pkg-config
2、清理之前的编译:
XML
cd /root/wp/redis/redis-7.2.3
sudo make distclean
3、重新编译并启用 systemd 支持:
XML
sudo make USE_SYSTEMD=yes
4、重新安装:
XML
sudo make install
第三步:修改 systemd 服务文件
XML
sudo nano /etc/systemd/system/redis.service
将内容修改为:
XML
[Unit]
Description=Redis persistent key-value database
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli -a your_strong_password_here shutdown
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
# 禁用 systemd 通知(解决 NOTIFY_SOCKET 错误)
NotifyAccess=none
# 设置超时时间
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
第四步:解决内存过载警告(可选但推荐)
编辑系统配置:
XML
sudo nano /etc/sysctl.conf
在文件末尾添加:
XML
vm.overcommit_memory = 1
或者以上两步替换为下边一步:
XML
echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf
使配置生效:
XML
sudo sysctl -p
第四步:重新启动 Redis 服务
XML
sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl status redis

第五步:测试连接
1、使用 Redis 命令行客户端连接:
XML
redis-cli
2、如果设置了密码,需要进行认证:
XML
127.0.0.1:6379> auth your_strong_password_here
OK
3、测试基本的 set 和 get 操作:
XML
127.0.0.1:6379> set mykey "Hello World"
OK
127.0.0.1:6379> get mykey
"Hello World"
4、退出客户端:
XML
127.0.0.1:6379> quit