Linux安装配置Redis 7.2.3教程
Linux 下从源码安装和配置 Redis 7.2.3 的详细步骤。这个过程分为几个主要部分:安装依赖、编译安装、基本配置、系统服务集成 和 基本测试。
文章目录
前言
第一步:准备工作与安装依赖
第二步:编译与安装
第三步:基本配置
1.创建配置目录和工作目录
2.复制默认配置文件到系统目录
3.编辑配置文件
4.设置目录权限
第四步:创建系统服务(推荐)
1、创建 Redis 用户和组(为了安全,不以 root 用户运行):
2、创建 systemd 服务文件:
3、将以下内容写入服务文件:
4、重新加载 systemd 配置并启动 Redis 服务:
5、设置 Redis 开机自启:
6、检查 Redis 服务状态:
问题分析及解决方案
第一步:停止当前服务
第二步:重新编译 Redis 并启用 systemd 支持
第三步:修改 systemd 服务文件
第四步:解决内存过载警告(可选但推荐)
第五步:测试连接
1、使用 Redis 命令行客户端连接:
2、如果设置了密码,需要进行认证:
3、测试基本的 set 和 get 操作:
4、退出客户端:
前言
官网(Downloads | Redis)
下载(Index of /releases/)
第一步:准备工作与安装依赖
- 进入下载目录
创建一个安装路径并将安装包下载到此目录,我们后续的操作也在这里进行。
cd /root/wp/redis
2.安装编译依赖
Redis 是使用 C 语言编写的,因此需要 gcc
编译器。此外,构建系统需要 make
。我们还需要 systemd
相关的开发包(如果您希望将 Redis 作为系统服务管理)。
- 对于 CentOS / RHEL / Rocky Linux / AlmaLinux:
yum update -y
yum install -y gcc make systemd-devel
- 对于 Ubuntu / Debian:
apt update -y
apt install -y gcc make libsystemd-dev pkg-config
第二步:编译与安装
1.使用 wget
下载 Redis 源代码压缩包:
sudo wget https://download.redis.io/releases/redis-7.2.3.tar.gz
wget
命令说明:
-
wget
是一个非交互式的网络下载工具。 -
它会在后台直接下载文件到当前目录。
-
如果下载中断,可以使用
wget -c
命令来断点续传。
2.解压源码包
sudo tar xzf redis-7.2.3.tar.gz
3.进入解压后的目录:
cd redis-7.2.3
4.编译源码
这个命令会编译 Redis 的可执行文件。-j
参数可以根据您的 CPU 核心数加速编译,例如 -j4
表示使用 4 个核心。
make -j$(nproc)
$(nproc)
会自动获取您系统的 CPU 核心数。
如果编译过程出现错误,通常是因为依赖问题,请确保第一步的准备工作已完成。
5.运行测试(可选但推荐)
这一步可以验证编译是否正确。需要 tcl
依赖。
-
CentOS/RHEL 等:
yum install -y tcl
-
Ubuntu/Debian 等:
apt install -y tcl
make test
测试过程可能需要几分钟。如果出现 \o/ All tests passed without errors!
则说明一切正常。
6.安装到系统目录
这会将 Redis 的可执行文件(如 redis-server
, redis-cli
)复制到系统的 /usr/local/bin/
目录下,这样就可以在任意位置直接运行它们。
7.验证安装
# 检查安装结果
ls -la /usr/local/bin/redis-server
/usr/local/bin/redis-server --version# 测试基本功能
redis-cli --version#启动服务
redis-server redis.conf
#停止服务
pkill redis
第三步:基本配置
现在 Redis 已经可以运行了,但默认配置不适合生产环境。我们需要创建一个配置文件并进行修改。
1.创建配置目录和工作目录
mkdir -p /etc/redis
mkdir -p /var/lib/redis
-
/etc/redis
:存放配置文件。 -
/var/lib/redis
:存放 Redis 的持久化数据(RDB/AOF 文件)。
2.复制默认配置文件到系统目录
cp /root/wp/redis/redis-7.2.4/redis.conf /etc/redis/redis.conf
3.编辑配置文件
使用 vi
或 nano
等编辑器修改配置文件。
vi /etc/redis/redis.conf
找到并修改以下关键配置项:
- 设置为守护进程(后台运行):
daemonize yes
- 设置持久化文件(RDB/AOF)目录:
dir /var/lib/redis
- 日志文件路径:指定日志文件位置。
logfile /var/log/redis_6379.log
- 设置密码(强烈建议): 找到
# requirepass foobared
这一行,取消注释并将foobared
改为一个强密码。
requirepass your_strong_password_here
- 如果需要远程访问(谨慎开启) 绑定 IP:为了安全,默认只监听本地回环地址。如果您需要从其他服务器访问,请设置服务器的 IP 地址,或注释掉这一行(有安全风险)。
bind 127.0.0.1 -::1
# 如果只需本地访问,保持原样即可。
# 如果需要远程访问,可以注释掉这行(不推荐)或设置为 `bind 0.0.0.0 -::1`(并务必设置密码)。
- 保护模式:如果既没有设置密码也没有明确绑定 IP,保护模式会阻止外部访问。如果打算远程访问且设置了密码,可以关闭它,但更推荐使用
bind
和requirepass
。
protected-mode yes
修改完成后,保存并退出编辑器。
4.设置目录权限
sudo chown -R redis:redis /var/lib/redis
注意:你需要先创建一个名为 redis
的用户和用户组(下一步会做)。
第四步:创建系统服务(推荐)
为了方便管理(启动、停止、开机自启),我们创建一个 systemd 服务。
1、创建 Redis 用户和组(为了安全,不以 root 用户运行):
sudo groupadd redis
sudo useradd -r -g redis -s /bin/false redis
2、创建 systemd 服务文件:
sudo nano /etc/systemd/system/redis.service
3、将以下内容写入服务文件:
[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 服务:
sudo systemctl daemon-reload
sudo systemctl start redis
5、设置 Redis 开机自启:
sudo systemctl enable redis
6、检查 Redis 服务状态:
sudo systemctl status redis
如果看到 active (running)
字样,说明 Redis 已经成功启动。
很遗憾! 我这没有看到~ 看到了别的信息:
[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 databaseLoaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)Active: deactivating (stop-sigterm) since 四 2025-09-25 20:40:40 CST; 10s agoMain PID: 23168 (code=exited, status=0/SUCCESS)CGroup: /system.slice/redis.service└─23169 /usr/local/bin/redis-server 0.0.0.0:63799月 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 支持 -
次要警告:内存过载提交设置警告
第一步:停止当前服务
sudo systemctl stop redis
第二步:重新编译 Redis 并启用 systemd 支持
1、安装 systemd 开发库:
CentOS/RHEL/Fedora:
sudo yum install -y systemd-devel
Ubuntu/Debian:
sudo apt install -y libsystemd-dev pkg-config
2、清理之前的编译:
cd /root/wp/redis/redis-7.2.3
sudo make distclean
3、重新编译并启用 systemd 支持:
sudo make USE_SYSTEMD=yes
4、重新安装:
sudo make install
第三步:修改 systemd 服务文件
sudo nano /etc/systemd/system/redis.service
将内容修改为:
[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
第四步:解决内存过载警告(可选但推荐)
编辑系统配置:
sudo nano /etc/sysctl.conf
在文件末尾添加:
vm.overcommit_memory = 1
或者以上两步替换为下边一步:
echo 'vm.overcommit_memory = 1' | sudo tee -a /etc/sysctl.conf
使配置生效:
sudo sysctl -p
第四步:重新启动 Redis 服务
sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl status redis
第五步:测试连接
1、使用 Redis 命令行客户端连接:
redis-cli
2、如果设置了密码,需要进行认证:
127.0.0.1:6379> auth your_strong_password_here
OK
3、测试基本的 set 和 get 操作:
127.0.0.1:6379> set mykey "Hello World"
OK
127.0.0.1:6379> get mykey
"Hello World"
4、退出客户端:
127.0.0.1:6379> quit