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
相关推荐
wheeldown2 小时前
【Linux】Linux文件系统详解:从磁盘到文件的奥秘
linux·运维·服务器
挨踢攻城2 小时前
Linux安全 | 防火墙工具 iptables 详解
linux·安全·iptables·rhce·rhca·厦门微思网络·linux防火墙工具
2301_800050993 小时前
DHCP 服务器
linux·运维·笔记
墨^O^3 小时前
网络通信协议全解析:HTTP/UDP/TCP核心要点
linux·服务器·网络·学习
_Re.3 小时前
DSC 参数ARCH_HANG_FLAG对集群的影响
linux·服务器·数据库
红尘客栈23 小时前
Ansible 入门到实战:自动化运维的瑞士军刀
运维·自动化·ansible
微风中的麦穗4 小时前
【远程桌面】运维强推工具之远程控制软件RustDesk 1.4.1 全面指南:开源远程桌面的终极解决方案
运维·远程工具·rustdesk·远程软件·运维神器·办公神器·局域网远程
望获linux4 小时前
【Linux基础知识系列:第一百三十九篇】使用Bash编写函数提升脚本功能
linux·运维·服务器·arm开发·chrome·性能优化·bash
hhhwx6664 小时前
Linux学习记录--利用信号量来调度共享资源(2)
linux·c语言·c++·学习