1. 为什么选择yum安装Redis?
在Linux环境下安装Redis有多种方式,包括源码编译安装、容器化部署以及包管理器安装。对于大多数生产环境而言,通过yum这类包管理器安装是最稳妥的选择。我管理过上百台Redis服务器,实测yum安装的稳定性远超手动编译,特别是在依赖管理和版本控制方面。
yum会自动处理glibc等基础依赖库的版本匹配问题,避免出现"明明本地测试正常,上生产就core dump"的经典悲剧。去年我们团队就遇到过手动编译的Redis 6.2.6在CentOS 7.9上因为jemalloc版本冲突导致内存泄漏,而yum仓库里的5.0.3版本反而稳定运行至今。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与yum源配置
2.1 系统兼容性检查
执行以下命令确认系统架构和版本:
bash复制cat /etc/redhat-release # CentOS/RHEL系统
uname -m # 查看是x86_64还是aarch64架构
注意:Redis 6.x以上版本需要GLIBC_2.27+,CentOS 7默认GLIBC版本为2.17。若必须使用新特性,建议考虑Docker方式部署。
2.2 配置EPEL仓库
Redis不在默认的base仓库中,需要先启用EPEL:
bash复制sudo yum install -y epel-release
sudo yum makecache
国内用户推荐换用阿里云镜像加速:
bash复制sudo sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=https\?://download.fedoraproject.org/pub/epel|baseurl=https://mirrors.aliyun.com/epel|g' \
-i.bak \
/etc/yum.repos.d/epel*.repo
3. Redis安装全流程实录
3.1 执行安装命令
通过yum查询可用版本并安装:
bash复制yum list redis --showduplicates # 查看所有版本
sudo yum install -y redis-5.0.3 # 建议安装稳定版
安装后关键文件位置:
- 配置文件:/etc/redis.conf
- 数据目录:/var/lib/redis
- 日志文件:/var/log/redis/redis.log
- 服务管理:/usr/lib/systemd/system/redis.service
3.2 安全加固配置
修改/etc/redis.conf关键参数:
conf复制bind 127.0.0.1 # 生产环境改为内网IP
protected-mode yes
requirepass YourStrongPassword123 # 取消注释并修改
maxmemory 2gb # 根据机器内存调整
maxmemory-policy volatile-lru
血泪教训:曾经有台测试服务器没设密码,被入侵后成了矿机。务必设置复杂密码并限制IP访问!
4. 服务管理与优化
4.1 系统服务控制
使用systemd管理服务:
bash复制sudo systemctl enable redis # 开机自启
sudo systemctl start redis # 立即启动
sudo systemctl status redis # 检查状态
4.2 性能调优技巧
在/etc/sysctl.conf追加:
conf复制vm.overcommit_memory = 1
net.core.somaxconn = 1024
执行生效:
bash复制sudo sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/enabled
5. 验证与基础操作
5.1 连接测试
使用redis-cli验证安装:
bash复制redis-cli -h 127.0.0.1 -a YourStrongPassword123
127.0.0.1:6379> ping # 应返回PONG
127.0.0.1:6379> info server # 查看版本信息
5.2 基础数据类型操作
演示五种基础数据类型:
bash复制# 字符串
SET mykey "Hello Redis"
GET mykey
# 列表
LPUSH mylist "item1"
LRANGE mylist 0 -1
# 集合
SADD myset "member1"
SMEMBERS myset
# 哈希
HSET myhash field1 "value1"
HGET myhash field1
# 有序集合
ZADD myzset 1 "one"
ZRANGE myzset 0 -1 WITHSCORES
6. 常见问题排坑指南
6.1 启动失败排查
查看详细日志定位问题:
bash复制journalctl -u redis -f # 实时日志
grep -i error /var/log/redis/redis.log # 错误筛查
典型问题解决方案:
- 端口冲突:netstat -tulnp | grep 6379
- 权限问题:chown -R redis:redis /var/lib/redis
- 内存不足:dmesg | grep oom-killer
6.2 性能问题分析
使用内置命令诊断:
bash复制redis-cli --latency -h 127.0.0.1 # 延迟测试
redis-cli --bigkeys # 大键值扫描
redis-cli info memory # 内存分析
7. 生产环境进阶建议
7.1 持久化策略选择
根据业务需求配置:
- RDB快照:save 900 1
- AOF日志:appendonly yes
- 混合模式(Redis 4.0+):aof-use-rdb-preamble yes
金融类业务建议AOF每秒同步,可承受少量数据丢失的业务用RDB
7.2 监控方案
推荐工具组合:
- Prometheus + redis_exporter
- Grafana官方Redis仪表盘
- 自定义脚本监控慢查询:
bash复制redis-cli slowlog get 5 # 获取最近5条慢查询
8. 可视化工具选型
8.1 Another Redis Desktop Manager
跨平台工具安装:
bash复制# CentOS 8
sudo dnf install https://github.com/qishibo/AnotherRedisDesktopManager/releases/download/v1.5.6/Another-Redis-Desktop-Manager.1.5.6.x86_64.rpm
8.2 RedisInsight
官方工具特色功能:
- 内存分析
- 慢查询可视化
- CLI自动补全
9. 版本升级路线
稳妥的升级策略:
- 先在测试环境验证:
bash复制
yum update redis - 使用redis-cli --version确认新版本
- 通过CONFIG REWRITE保留原有配置
- 灰度发布到生产环境
10. 数据备份与迁移
10.1 手动备份方案
创建定时任务:
bash复制crontab -e
# 每天凌晨备份
0 0 * * * redis-cli SAVE && cp /var/lib/redis/dump.rdb /backup/redis-$(date +\%Y\%m\%d).rdb
10.2 迁移到Docker环境
若后续需要容器化:
bash复制docker run --name some-redis -v /backup/dump.rdb:/data/dump.rdb -d redis redis-server --appendonly yes
我在实际运维中发现,yum安装的Redis虽然版本可能不是最新,但稳定性经过充分验证。对于关键业务系统,建议通过读写分离架构而不是盲目升级版本来提升性能。曾经有个电商项目强行升级到Redis 6导致缓存雪崩,最后回退到yum仓库的5.0.9版本才稳定下来。
