Redis 6.2.14 源码编译部署说明
适用环境:CentOS 7 / RHEL 7
安装方式:源码编译安装
本文档基于实际生产部署过程整理,其他运维人员可按步骤在新服务器上复现
一、部署前准备
1.1 所需安装文件清单
| 文件 | 说明 | 存放位置 |
|---|---|---|
| redis-6.2.14.tar.gz | Redis 6.2.14 源码包(约 2.4M) | /install/ |
1.2 环境要求
- 操作系统:CentOS 7 / RHEL 7
- 编译工具:gcc、make(编译安装必需)
- 内存:建议 1GB 以上(按业务需求调整)
- 端口规划:6379(Redis 默认端口)
1.3 检查编译环境
bash
which gcc make
gcc --version # 确认 gcc 可用(本文环境为 4.8.5)
二、编译安装
2.1 解压源码包
bash
# redis安装包保存在 /install/ 目录下
# 解压安装文件到 /opt/ 目录下
tar -xzf /install/redis-6.2.14.tar.gz -C /opt/
ls -d /opt/redis-6.2.14
2.2 编译
bash
cd /opt/redis-6.2.14
make -j$(nproc)
预期输出末尾:
LINK redis-server
INSTALL redis-sentinel
LINK redis-cli
Hint: It's a good idea to run 'make test' ;)
2.3 安装到系统目录
bash
make install
# 验证安装
/usr/local/bin/redis-server --version
# 预期:Redis server v=6.2.14 ... bits=64
三、配置 Redis
3.1 创建目录结构
bash
mkdir -p /etc/redis /var/lib/redis /var/log/redis
cp /opt/redis-6.2.14/redis.conf /etc/redis/redis.conf
3.2 修改关键配置
编辑 /etc/redis/redis.conf,修改以下配置项:
properties
# 1. 守护进程模式(后台运行)
daemonize yes
# 2. 日志文件路径
logfile "/var/log/redis/redis.log"
# 3. 数据目录
dir /var/lib/redis
# 4. 访问密码(生产环境必须设置)
requirepass <您的密码>
# 5. 监听地址(如需远程访问)
bind * -::*
⚠️ 安全说明:
- 生产环境必须设置 requirepass 密码
- 修改 bind 为所有接口前,请确保已设置密码
- 保护模式保持默认开启(protected-mode yes),配合密码认证使用
四、注册 systemd 服务(开机自启)
创建 /etc/systemd/system/redis.service:
ini
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=on-failure
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
启用并启动服务:
bash
systemctl daemon-reload
systemctl enable redis
systemctl start redis
五、验证部署结果
bash
# 1. 服务状态
systemctl is-active redis # 应显示 active
systemctl is-enabled redis # 应显示 enabled
# 2. 端口监听
ss -tlnp | grep 6379
# 本地模式:127.0.0.1:6379
# 远程模式:*:6379
# 3. 功能验证(无密码应被拒绝)
redis-cli ping
# 预期:(error) NOAUTH Authentication required.
# 4. 密码认证验证
redis-cli -a '<您的密码>' ping
# 预期:PONG
六、远程访问配置(可选)
如需远程客户端连接 Redis:
bash
# 1. 确认已设置密码(必须)
grep '^requirepass' /etc/redis/redis.conf
# 2. 修改监听地址
sed -i 's/^bind 127.0.0.1 -::1/bind * -::*/' /etc/redis/redis.conf
# 3. 重启服务
systemctl restart redis
# 4. 验证监听
ss -tlnp | grep 6379 # 应显示 *:6379
# 5. 远程连接测试
redis-cli -h <服务器IP> -p 6379 -a '<您的密码>' ping
七、日常运维命令
bash
# 服务管理
systemctl start|stop|restart|status redis
# 连接 Redis
redis-cli -a '<密码>'
# 或先连接再认证
redis-cli
127.0.0.1:6379> auth <密码>
# 查看日志
tail -f /var/log/redis/redis.log
# 查看内存使用
redis-cli -a '<密码>' info memory | grep used_memory_human
# 手动触发持久化
redis-cli -a '<密码>' bgsave
关键路径
| 项目 | 路径 |
|---|---|
| 程序目录 | /usr/local/bin/ |
| 配置文件 | /etc/redis/redis.conf |
| 数据目录 | /var/lib/redis |
| 日志文件 | /var/log/redis/redis.log |
| 源码目录 | /opt/redis-6.2.14 |
| systemd 服务文件 | /etc/systemd/system/redis.service |
八、常见问题
8.1 编译报错缺少 gcc 或 make
处理:从光盘本地源安装编译工具:
bash
yum install -y gcc make
8.2 远程连接被拒绝
排查:
- 确认 bind 已修改为 * 或指定 IP
- 确认已设置 requirepass 密码
- 确认防火墙已关闭或已放行 6379 端口
- 确认连接时提供了正确的密码
8.3 提示 NOAUTH Authentication required
原因:Redis 已设置密码,连接时未认证。
处理:连接时添加 -a 参数,或连接后执行 auth 命令。
8.4 服务启动失败
排查:
- 查看日志:tail -50 /var/log/redis/redis.log
- 检查配置文件语法:/usr/local/bin/redis-server /etc/redis/redis.conf --test-memory 2
- 确认数据目录和日志目录存在且有写权限
九、部署清单核对表
- gcc、make 编译环境已就绪
- 源码包已解压到 /opt/redis-6.2.14
- make 编译成功(无错误)
- make install 安装成功
- redis-server --version 验证版本正确
- 配置文件已修改(daemonize、dir、logfile)
- requirepass 密码已设置
- systemd 服务文件已创建
- 服务已 enable 并 active
- 6379 端口监听正常
- 无密码连接被拒绝
- 密码认证连接成功
- (可选)远程访问已配置并验证