Linux安装配置Redis 7.2.3教程

Linux 下从源码安装和配置 Redis 7.2.3 的详细步骤。这个过程分为几个主要部分:安装依赖编译安装基本配置系统服务集成基本测试

文章目录

前言

第一步:准备工作与安装依赖

第二步:编译与安装

第三步:基本配置

1.创建配置目录和工作目录

2.复制默认配置文件到系统目录

3.编辑配置文件

4.设置目录权限

第四步:创建系统服务(推荐)

[1、创建 Redis 用户和组(为了安全,不以 root 用户运行):](#1、创建 Redis 用户和组(为了安全,不以 root 用户运行):)

[2、创建 systemd 服务文件:](#2、创建 systemd 服务文件:)

3、将以下内容写入服务文件:

[4、重新加载 systemd 配置并启动 Redis 服务:](#4、重新加载 systemd 配置并启动 Redis 服务:)

[5、设置 Redis 开机自启:](#5、设置 Redis 开机自启:)

[6、检查 Redis 服务状态:](#6、检查 Redis 服务状态:)

问题分析及解决方案

第一步:停止当前服务

[第二步:重新编译 Redis 并启用 systemd 支持](#第二步:重新编译 Redis 并启用 systemd 支持)

[第三步:修改 systemd 服务文件](#第三步:修改 systemd 服务文件)

第四步:解决内存过载警告(可选但推荐)

第五步:测试连接

[1、使用 Redis 命令行客户端连接:](#1、使用 Redis 命令行客户端连接:)

2、如果设置了密码,需要进行认证:

[3、测试基本的 set 和 get 操作:](#3、测试基本的 set 和 get 操作:)

4、退出客户端:


前言

官网(Downloads | Redis

下载(Index of /releases/

第一步:准备工作与安装依赖

  1. 进入下载目录

创建一个安装路径并将安装包下载到此目录,我们后续的操作也在这里进行。

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. 编辑配置文件

使用 vinano 等编辑器修改配置文件。

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,保护模式会阻止外部访问。如果打算远程访问且设置了密码,可以关闭它,但更推荐使用 bindrequirepass
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 服务正在关闭过程中。从日志中可以看到两个关键问题:

问题分析及解决方案

  1. 主要问题Redis is compiled without libsystemd support! - Redis 编译时缺少 systemd 支持

  2. 次要警告:内存过载提交设置警告

第一步:停止当前服务
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
相关推荐
wdfk_prog1 天前
[Linux]学习笔记系列 -- [kernel][irq]softirq
linux·笔记·学习
扶尔魔ocy1 天前
【DIY】RS232串口监听头制作
运维·rs232
迎風吹頭髮1 天前
Linux服务器编程实践60-双向管道:socketpair函数的实现与应用场景
linux·运维·服务器
试试勇气1 天前
Linux学习笔记(九)--Linux进程终止与进程等待
linux·笔记·学习
AORO20251 天前
航运、应急、工业适用,AORO P1100三防平板引领行业数字化变革
运维·服务器·网络·智能手机·电脑·信息与通信
wheeldown1 天前
【Linux】Linux 进程信号核心拆解:pending/block/handler 三张表 + signal/alarm 实战
linux·运维·服务器
运维老司机1 天前
ThinkPad 安装 Ubuntu 系统教程
linux·运维·ubuntu
云飞云共享云桌面1 天前
替代传统电脑的共享云服务器如何实现1拖8SolidWorks设计办公
linux·运维·服务器·网络·电脑·制造
AI云原生1 天前
云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
运维·服务器·python·docker·云原生·容器·bug
添砖java‘’1 天前
vim高效编辑:从入门到精通
linux·编辑器·操作系统·vim