说明:
redis版本升级制约限制:
jdk=1.8, springboot=2.7.18
springboot 内置lettuce=6.1.10.RELEASE, springboot内置的jedis=3.8.0
适配redis的版本为7.0.x. 最新版本为7.0.15.
针对最新版本:7.2.4 使用的RESP3 协议,存在解析失败风险,以及ACL 认证异常。(自测验证能正常使用,未进行大数据量验证)
redis原始版本: 6.2.6
redis可以通过快照进行数据的备份和还原。
服务安装
Docker 安装:
docker run -d --name redis-7.0.15-p 6379:6379 redis:7.0.15redis-server /data/redis.conf
linux安装:
创建依赖文件夹
mkdir -p /opt/easy-cloud/redis-7.0.15 /logs && mkdir -p /opt/easy-cloud/redis-src && touch /opt/easy-cloud/redis-7.0.15/logs/redis.log
# 进入安装目录
cd /opt/easy-cloud
# 服务下载
wget https://download.redis.io/releases/redis-7.0.15.tar.gz
# 解压到src目录tar -zxf redis-7.0.15.tar.gz -C ./redis-src --strip-components 1
# 进入目录:
cd redis-src
# 编译
make
# 安装
make PREFIX=/opt/easy-cloud/redis-7.0.15install
windows安装:
略
服务升级:
前置备份
进入文件夹 设置redis的密码(如果配置文件内有密码)
export REDISCLI_AUTH=xxxx
cd /opt/
easy-cloud#老版本服务备份
tar -zcvf redis-6.2.6.tar.gz redis-6.2.6/
#新版本配置文件备份
mv redis-7.0.15 /redis.conf redis-7.0.15 /redis.conf.7.0.15.bak
#老版本配置文件覆盖新版本
cp redis-6.2.6/redis.conf redis-7.0.15/redis.conf
#历史服务镜像快照备份
./redis-6.2.6/bin/redis-cli bgsave
生成配置文件默认是根目录的:dump.rdb
新版本启动
进入目录
export REDISCLI_AUTH=xxxx
cd /opt/
easy-cloud/redis-7.0.15停止老服务
/opt/
easy-cloud/redis-6.2.6/bin/redis-cli shutdown复制快照到当前目录
cp ../redis-6.2.6/dump.rdb dump.rdb
#确认配置文件已经替换
cat redis.conf
-- 如果存在appendonly yes 代表通过AOF加载数据,需要先rdb重启,再AOF重启(见备注),
-- 如果存在appendonly no 或缺省,代表rdb加载数据,无需进行本小结的后续步骤。
启动服务
./bin/redis-server ./redis.conf
验证服务是否启动成功
./bin/redis-cli ping
-- 返回PONG代表成功(root代表密码需根据服务进行更换)
查看redis内数据信息
./bin/redis-cli info keyspace
功能验证
-
redis客户端链接,./bin/redis-cli info keyspace
-
真实项目链接后进行redis操作
版本回退
停止新服务
/opt/
easy-cloud/redis-7.0.15/bin/redis-cli shutdown#进入文件夹
cd /opt/
easy-cloud#解压老版本数据(如果原始文件夹未删除可忽略)
tar -zxvf redis-6.2.6.tar.gz
#启动老服务
cd /redis-6.2.6 ./bin/redis-server ./redis.conf
#验证服务正常启动
./bin/redis-cli info keyspace
#风险点:新版本的快照,老版本加载失败。新版本运行期间数据丢失。
数据删除
rm -rf /opt/
easy-cloud/redis-*.tar.gzrm -rf /opt/
easy-cloud/redis-6.2.6rm -rf /opt/
easy-cloud/redis-src
备注
数据恢复失败
查看配置文件的aof配置是否为aof启动。
-- copy快照文件dump.rdb
cp /xxx/dump.rdb dump.rdb
-- 关闭AOF启动服务。
./bin/redis-server ./redis.conf --appendonly no
-- 查看启动日志
cat logs/redis.log |grep RDB
-- 返回字样: Done loading RDB, keys loaded: xxx, keys expired: xxxx.
-- 开启AOF
./bin/redis-cli CONFIG SET appendonly yes
-- 生成快照。
./bin/redis-cli bgsave
-- 关闭服务。
./bin/redis-cli shutdown