Rocky Linux 10 环境下 Redis 源码编译安装与系统服务集成
1. 背景
在 Rocky Linux 10 (或 RHEL 10) 等较新发行版中,官方仓库(BaseOS/AppStream)可能尚未包含 Redis 软件包。为了获得最稳定的运行环境并确保持久化支持,直接从源码编译安装是最佳实践。
2. 环境准备
由于 Rocky Linux 10 默认工具链极其精简,在编译前必须手动安装 C/C++ 编译器及构建工具。
# 安装全套编译环境
sudo dnf install -y gcc gcc-c++ make
3. 源码下载与编译安装
我们直接从 Redis 官网获取最新稳定版源码。
# 进入源码存放目录
cd /usr/local/src
# 下载最新稳定版
sudo curl -O https://download.redis.io/redis-stable.tar.gz
# 解压并进入目录
sudo tar -xzf redis-stable.tar.gz
cd redis-stable
# 编译 (核心技巧:使用 MALLOC=libc 解决新系统下的 jemalloc 兼容性问题)
sudo make clean
sudo make MALLOC=libc
# 将二进制文件安装至系统路径 (/usr/local/bin)
sudo make install
4. 配置与系统集成
为了让 Redis 在后台稳定运行并随开机自启,我们需要配置 redis.conf 并集成到 systemd。
4.1 配置文件准备
sudo mkdir -p /etc/redis
sudo cp /usr/local/src/redis-stable/redis.conf /etc/redis/redis.conf
# 关键:由于由 systemd 管理,确保 daemonize 为 no
sudo sed -i 's/^daemonize yes/daemonize no/' /etc/redis/redis.conf
4.2 创建 Systemd 服务
创建服务单元文件 /etc/systemd/system/redis.service:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
5. 服务启动与验证
# 重新加载配置并启动服务
sudo systemctl daemon-reload
sudo systemctl enable --now redis
# 检查服务状态
systemctl status redis
# 测试连接
redis-cli ping
# 预期返回: PONG
6. 避坑指南 (Troubleshooting)
| 报错信息 | 原因分析 | 解决方案 |
cc: command not found |
缺少 C 编译器 | dnf install gcc |
g++: command not found |
缺少 C++ 编译器 | dnf install gcc-c++ |
je_malloc_usable_size 编译报错 |
默认分配器依赖冲突 | 编译时添加 MALLOC=libc |
start-limit-hit 启动失败 |
Redis 开启了后台模式与 systemd 冲突 | 将 redis.conf 中的 daemonize 设为 no |
7. 安全建议
在生产环境中,请务必执行以下操作:
-
编辑
/etc/redis/redis.conf。 -
搜索
requirepass并设置强密码。 -
确保
bind 127.0.0.1仅允许本地访问(若需远程访问,请配合防火墙策略)。 -
修改后执行
systemctl restart redis。
阅读剩余
THE END