Redis
适用环境:RHEL/OEL 7/9 Linux
1. 升级概述
Redis 升级是一个重要的维护任务,可以获得新特性、性能改进和安全补丁。本指南提供了单实例和集群环境下的升级步骤。
学习交流加群风哥QQ113257174 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。
1.1 支持的升级路径
- Redis 6.x → Redis 7.x
- Redis 7.0 → Redis 7.2
1.2 升级策略
- 单实例:停止服务 → 升级 → 启动服务
- 集群:滚动升级,逐个节点升级
2. 升级前准备
2.1 备份数据
# 单实例备份
/usr/local/redis/bin/redis-cli -a your_secure_password save
cp /var/lib/redis/dump.rdb /var/lib/redis/dump.rdb.bak
# 集群备份
for port in 7001 7002 7003 7004 7005 7006; do
/usr/local/redis/bin/redis-cli -c -p $port -a your_secure_password save
cp /var/lib/redis/$port/dump.rdb /var/lib/redis/$port/dump.rdb.bak
done
提示:确保备份文件存储在安全的位置,并且备份过程完成后验证备份文件的完整性。
2.2 检查当前版本
/usr/local/redis/bin/redis-server --version
2.3 下载新版本
cd /tmp
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
3. 单实例 Redis 升级
3.1 停止当前 Redis 服务
systemctl stop redis
3.2 备份配置文件
cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
3.3 编译安装新版本
tar -zxvf redis-7.2.4.tar.gz
cd redis-7.2.4
make
make install PREFIX=/usr/local/redis
3.4 启动 Redis 服务
systemctl start redis
4. Redis 集群升级
4.1 滚动升级步骤
- 停止一个从节点:
- 升级该节点:
- 启动该节点:
- 等待节点加入集群:
- 重复上述步骤,升级其他从节点:
- 升级主节点(需要先进行故障转移):
pkill -f redis-server.*7004
cd /tmp/redis-7.2.4
make install PREFIX=/usr/local/redis
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7004.conf
/usr/local/redis/bin/redis-cli -c -p 7004 -a your_secure_password cluster nodes
# 升级 7005
pkill -f redis-server.*7005
cd /tmp/redis-7.2.4
make install PREFIX=/usr/local/redis
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7005.conf
# 升级 7006
pkill -f redis-server.*7006
cd /tmp/redis-7.2.4
make install PREFIX=/usr/local/redis
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7006.conf
# 对 7001 进行故障转移
/usr/local/redis/bin/redis-cli -c -p 7004 -a your_secure_password cluster failover
# 停止 7001
pkill -f redis-server.*7001
# 升级 7001
cd /tmp/redis-7.2.4
make install PREFIX=/usr/local/redis
/usr/local/redis/bin/redis-server /etc/redis/cluster/redis-7001.conf
# 重复上述步骤升级其他主节点
5. 升级后验证
5.1 检查 Redis 版本
/usr/local/redis/bin/redis-server --version
5.2 检查服务状态
systemctl status redis
5.3 测试 Redis 命令
/usr/local/redis/bin/redis-cli -a your_secure_password ping
/usr/local/redis/bin/redis-cli -a your_secure_password set test_key "Hello Redis"
/usr/local/redis/bin/redis-cli -a your_secure_password get test_key
5.4 检查集群状态(如果是集群)
/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster info
/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster nodes
6. 故障排查
6.1 常见问题及解决方法
6.1.1 服务启动失败
# 检查错误日志
cat /var/log/redis/redis.log
# 检查端口是否被占用
netstat -tuln | grep 6379
# 检查配置文件
vi /etc/redis/redis.conf
6.1.2 集群节点无法加入
# 检查网络连接
telnet redis-node1 7001
# 检查集群状态
/usr/local/redis/bin/redis-cli -c -p 7001 -a your_secure_password cluster nodes
# 检查日志
cat /var/log/redis/redis-7001.log
6.1.3 数据丢失
# 恢复备份
cp /var/lib/redis/dump.rdb.bak /var/lib/redis/dump.rdb
# 重启服务
systemctl restart redis
6.1.4 性能问题
# 检查内存使用情况
free -h
# 检查 Redis 内存使用
/usr/local/redis/bin/redis-cli -a your_secure_password info memory
# 调整最大内存
vi /etc/redis/redis.conf
maxmemory 4gb
# 重启服务
systemctl restart redis
警告:本指南仅供参考,实际升级时请根据具体环境进行调整。在生产环境中,建议先在测试环境中进行升级测试。
提示:升级完成后,建议定期监控 Redis 服务的运行状态,确保一切正常。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
