1. 为什么选择yum安装Redis?
在Linux系统上安装Redis有多种方式,但yum安装无疑是CentOS/RHEL系发行版中最便捷的选择。我管理过上百台服务器,yum安装方式在标准化运维中具有不可替代的优势:
依赖自动处理:Redis运行需要gcc、tcl等依赖库,手动安装时经常遇到依赖缺失问题。yum会自动解决所有依赖关系,避免"安装-报错-装依赖"的循环。
版本稳定性:企业级环境中,我们更倾向于使用经过充分测试的稳定版本。以CentOS 7为例,默认yum源提供的Redis 3.2.12虽不是最新版,但却是与系统其他组件兼容性最好的版本。
服务集成:通过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-rpms3. 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 redis4.2 防火墙配置
如果启用了firewalld:
firewall-cmd --permanent --add-port=6379/tcp firewall-cmd --reload4.3 基础性能调优
在/etc/redis.conf中建议调整:
# 最大内存限制(根据服务器内存调整) maxmemory 2gb # 内存淘汰策略 maxmemory-policy allkeys-lru # 开启AOF持久化 appendonly yes # 后台保存触发条件 save 900 1 save 300 10 save 60 100005. 常见问题排查
5.1 安装失败处理
若出现Error: Nothing to do错误,可能是:
- 源未正确配置 - 检查/etc/yum.repos.d/下repo文件
- 包名错误 - 尝试
yum search redis - 已安装 - 执行
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-63806.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 备份策略
推荐方案:
- 每日RDB快照:
save 86400 1 - 每小时AOF重写:
echo "0 * * * * /usr/bin/redis-cli -a YourStrongPassword123 BGREWRITEAOF" >> /etc/crontab - 异地备份:
rsync -avz /var/lib/redis/dump.rdb backup-server:/redis-backups/
在多年的运维实践中,我发现yum安装的Redis虽然版本较旧,但其稳定性远超手动编译版本。对于大多数业务场景,Redis 3.2的功能已完全够用。只有当需要Streams等新特性时,才建议考虑源码编译或第三方源安装。