【CentOS7环境下Redis 6.2.14 源码编译部署说明】

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 端口监听正常
  • 无密码连接被拒绝
  • 密码认证连接成功
  • (可选)远程访问已配置并验证
相关推荐
AllData公司负责人6 小时前
AI大模型数据开发底座系列说明书,AllData集成Chat2DB开源项目建设AI 数据库分析底座,涵盖AI 洞察/对话SQL/智能视图!
数据库·人工智能·sql·开源·ai 洞察·对话sql
xixingzhe27 小时前
数据库备份的分类与特点
数据库
无奈笑天下7 小时前
银河麒麟上nproc命令教程详解
linux·运维·服务器
Rabitebla10 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
时间的拾荒人10 小时前
Redis 主从复制详解:配置实操 + 原理机制
数据库·redis·面试
隔窗听雨眠11 小时前
MySQL三表JOIN执行内核与优化器决策机制
数据库·mysql·sql优化
威嵌神州11 小时前
嵌入式排故实录:高并发下串口数据“超时丢包”的根因剖析与架构优化
运维·服务器·嵌入式硬件·缓存
Decay__12 小时前
SQLServer 索引与 SQL 优化 —— 聚集索引、非聚集索引、覆盖索引、碎片维护与执行计划
运维·数据库·sql·mysql·架构
java_logo12 小时前
Docker 部署 DeepSeek Harness(moelin):轻松搭建带登录的本地 AI Agent 平台
运维·docker·容器·ai agent·deepseek·harness·轩辕镜像
笃行35013 小时前
【金仓数据库产品体验官】订单增量同步实战:MERGE、OUTPUT 与 IDENTITY 的兼容验证
数据库