ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CentOS/RHEL下使用yum安装与配置Redis指南

CentOS/RHEL下使用yum安装与配置Redis指南

1. 为什么选择yum安装Redis?

在Linux系统上安装Redis有多种方式,但yum安装无疑是CentOS/RHEL系发行版中最便捷的选择。我管理过上百台服务器,yum安装方式在标准化运维中具有不可替代的优势:

  1. 依赖自动处理:Redis运行需要gcc、tcl等依赖库,手动安装时经常遇到依赖缺失问题。yum会自动解决所有依赖关系,避免"安装-报错-装依赖"的循环。

  2. 版本稳定性:企业级环境中,我们更倾向于使用经过充分测试的稳定版本。以CentOS 7为例,默认yum源提供的Redis 3.2.12虽不是最新版,但却是与系统其他组件兼容性最好的版本。

  3. 服务集成:通过yum安装的Redis会自动注册为systemd服务,无需手动编写启动脚本。执行systemctl start redis即可管理服务状态,这在批量部署时特别高效。

提示:生产环境如果确实需要新版本,建议使用Remi或EPEL源替代默认源,而非直接编译安装。我曾遇到过自编译版本因glibc兼容性问题导致崩溃的案例。

2. 环境准备与yum源配置

2.1 基础环境检查

在开始安装前,需要确认以下基础信息(以下操作均需root权限):

# 查看系统版本 cat /etc/redhat-release # 确认已安装yum which yum || echo "yum not found" # 检查现有Redis进程 ps aux | grep redis

对于CentOS 7/8和RHEL 7/8,官方源中的Redis版本分别为:

  • CentOS 7: Redis 3.2.12
  • CentOS 8: Redis 5.0.3
  • RHEL 7: Redis 3.2.12
  • RHEL 8: Redis 5.0.3

2.2 yum源优化配置

默认源可能速度较慢,建议更换为国内镜像源。以下是阿里云源的配置方法:

# 备份原有repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载阿里云repo文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 生成缓存 yum makecache

如果系统是RHEL或需要EPEL源:

# 安装EPEL源 yum install -y epel-release # 或者针对RHEL subscription-manager repos --enable=rhel-7-server-optional-rpms

3. Redis安装与基础配置

3.1 执行安装命令

基础环境就绪后,安装只需一行命令:

yum install -y redis

安装完成后验证版本:

redis-server --version # 预期输出:Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=...

3.2 关键目录结构说明

通过yum安装的文件会分布在以下路径:

  • 配置文件:/etc/redis.conf
  • 数据目录:/var/lib/redis
  • 日志文件:/var/log/redis/redis.log
  • 可执行文件:/usr/bin/redis-server

3.3 基础安全配置

编辑/etc/redis.conf进行以下关键修改:

# 绑定内网IP(根据实际情况修改) bind 192.168.1.100 127.0.0.1 # 启用密码认证 requirepass YourStrongPassword123 # 关闭危险命令 rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG ""

4. 服务管理与运维操作

4.1 systemd服务控制

# 启动服务 systemctl start redis # 设置开机自启 systemctl enable redis # 检查状态 systemctl status redis

4.2 防火墙配置

如果启用了firewalld:

firewall-cmd --permanent --add-port=6379/tcp firewall-cmd --reload

4.3 基础性能调优

在/etc/redis.conf中建议调整:

# 最大内存限制(根据服务器内存调整) maxmemory 2gb # 内存淘汰策略 maxmemory-policy allkeys-lru # 开启AOF持久化 appendonly yes # 后台保存触发条件 save 900 1 save 300 10 save 60 10000

5. 常见问题排查

5.1 安装失败处理

若出现Error: Nothing to do错误,可能是:

  1. 源未正确配置 - 检查/etc/yum.repos.d/下repo文件
  2. 包名错误 - 尝试yum search redis
  3. 已安装 - 执行yum list installed | grep redis

5.2 服务启动失败排查

查看详细日志:

journalctl -u redis.service -f

常见问题:

  • 端口冲突:netstat -tulnp | grep 6379
  • 权限问题:chown -R redis:redis /var/lib/redis
  • 配置错误:redis-server /etc/redis.conf --test-config

5.3 连接测试

使用redis-cli验证:

redis-cli -h 127.0.0.1 -a YourStrongPassword123 127.0.0.1:6379> ping # 应返回 PONG 127.0.0.1:6379> info server # 查看服务器信息

6. 生产环境进阶建议

6.1 多实例部署

对于需要多实例的场景:

cp /etc/redis.conf /etc/redis-6380.conf # 修改端口、pid文件、日志文件路径等 sed -i 's/6379/6380/g' /etc/redis-6380.conf # 创建新的systemd单元文件 cp /usr/lib/systemd/system/redis.service /etc/systemd/system/redis-6380.service # 修改描述和启动命令 systemctl daemon-reload systemctl start redis-6380

6.2 监控配置

建议安装redis_exporter配合Prometheus监控:

wget https://github.com/oliver006/redis_exporter/releases/download/v1.45.0/redis_exporter-v1.45.0.linux-amd64.tar.gz tar xvf redis_exporter*.tar.gz ./redis_exporter -redis.addr localhost:6379 -redis.password "YourStrongPassword123" &

6.3 备份策略

推荐方案:

  1. 每日RDB快照:
    save 86400 1
  2. 每小时AOF重写:
    echo "0 * * * * /usr/bin/redis-cli -a YourStrongPassword123 BGREWRITEAOF" >> /etc/crontab
  3. 异地备份:
    rsync -avz /var/lib/redis/dump.rdb backup-server:/redis-backups/

在多年的运维实践中,我发现yum安装的Redis虽然版本较旧,但其稳定性远超手动编译版本。对于大多数业务场景,Redis 3.2的功能已完全够用。只有当需要Streams等新特性时,才建议考虑源码编译或第三方源安装。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进