当前位置: 首页 > news >正文

[Linux]redis5.0.x升级至7.x完整操作流程

1. 从官网下载最新版redis:

官网地址:https://redis.io/download
官网
注:下载需要的登录,如果选择使用github账号登录,那么需要提前在github账号中取消勾选“Keep my email addresses private”(隐藏我的邮箱地址),否则会出现如下提示信息:
github登录提示
下载完成后会得到一个tar.gz后缀名的文件,如下图。
在这里插入图片描述

2. 将旧版redis进行停止与备份

2.1 停止redis服务端

cd ~/redis/bin;
./stop-redis.sh;

注:这里的stop-redis.sh是事先自行编写的停止脚本,如果不存在该脚本,可以进入redis-cli程序所在目录,输入如下命令:

./redis-cli -p <端口号> -a <密码> shutdown;

例如:

./redis-cli -p 6379-a 123456 shutdown;

2.2 备份旧版redis

cd;
cp -a redis redis_old;

注:这里假设redis原目录在家目录的redis目录下,请根据实际情况做调整。

3. 上传至服务器并编译

3.1 使用ftp工具将压缩包上传至服务器用户家目录

3.2 解压压缩包

tar -xzvf redis-7.2.5.tar.gz

解压后会在家目录下生成一个名为redis-7.2.5的目录,其中存放了redis的源码。

3.4 进入解压后的目录进行编译

cd redis-7.2.5make

编译成功后,会提示编译后的文件存放在redis-7.2.5的src目录下。
![编译成功](https://i-blog.csdnimg.cn/direct/b31ab3d28487496483e7d3a2504c28c9.png在这里插入图片描述

注:redis源码目录中不包含configure脚本,因此无法直接通过参数指定安装路径。但是这并不影响我们接下来的操作。
src目录下的,有编译后的脚本,以及很多编译过程中生成的.o、.c文件。
在这里插入图片描述

3.5 将src目录中的可执行文件拷贝到redis目录,覆盖旧版redis可执行文件

3.5.1 筛选出src目录中的可执行文件

 ls -l | grep '\-rwx'

在这里插入图片描述

3.5.2 将筛选出来的文件复制到旧版redis可执行文件所在目录

ll | grep '\-rwx' | awk '{ print $9 }' | xargs -I {} cp {} ~/redis/sbin;

3.5.3 去原redis目录检查复制情况

cd ~/redis/sbin;
ls -l;

在这里插入图片描述
根据文件更新时间判断,文件均已完成替换。

4. 检查redis版本

cd ~/redis/sbin
./redis-cli --version;
./redis-server --version;

在这里插入图片描述
显示版本号均为7.2.5。

5. 重新启动redis-server

cd bin;
./start-redis.sh;

注意:如果存在redis主从或者集群,则需要将redis-server全部停止后,待全部更新完毕,再逐个启动redis-server。
start-server.sh为事先写好的redis启动脚本。如果不存在该脚本,也可通过redis-server程序启动脚本。

cd ~/redis/bin/;
./redis-server <conf文件全路径>;

6. 通过日志检查启动情况

如果redis版本差别太大,有可能对持久化文件的读写会出现问题。
处理方式是全停redis-server,然后将持久化文件(后缀为*.aop,*.rdp)全部清除后,再重启应用。
成功运行时在日志中可见到success字样,并无报错信息,如下:
在这里插入图片描述

http://www.lryc.cn/news/516296.html

相关文章:

  • Java字符编码与正则表达式深度解析
  • 【C++】B2099 矩阵交换行
  • 论文解读 | NeurIPS'24 IRCAN:通过识别和重新加权上下文感知神经元来减轻大语言模型生成中的知识冲突...
  • edeg插件/扩展推荐:助力生活工作
  • 基于Python读取ZIP和TAR格式压缩包教程
  • 懒人不下床型遥控方案--手机对电脑的简单遥控(无收费方案)
  • 人工智能知识分享第八天-机器学习_泰坦尼克生存预估线性回归和决策树回归对比案例
  • html中下拉选框的基本实现方式及JavaScript动态修改选项内容情况总结
  • sql server期末复习
  • LabVIEW语言学习过程是什么?
  • 小程序租赁系统开发的优势与应用前景分析
  • 『SQLite』安装与基本命令语法
  • Unity-Mirror网络框架-从入门到精通之Benchmark示例
  • 毕业项目推荐:基于yolov8/yolov5的行人检测识别系统(python+卷积神经网络)
  • 今日头条ip属地根据什么显示?不准确怎么办
  • FPGA设计-如何使用后端工具
  • 苍穹外卖04——Redis初入门 在店铺打烊or营业状态管理功能中的使用
  • 【MySQL关于数据库和表结构的增删查改】
  • JVM实战—11.OOM的原因和模拟以及案例
  • LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 教程 (4)
  • Clickhouse集群部署(3分片1副本)
  • 刷服务器固件
  • 数据结构C语言描述9(图文结合)--二叉树和特殊书的概念,二叉树“最傻瓜式创建”与前中后序的“递归”与“非递归遍历”
  • CSS——2.书写格式一
  • Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查
  • 【NLP高频面题 - 分布式训练篇】ZeRO主要为了解决什么问题?
  • kubernetes-循序渐进了解coredns
  • mysql8 从C++源码角度看 客户端发送的sql信息 mysql服务端从网络读取到buff缓存中
  • pygame飞机大战
  • 【Vim Masterclass 笔记08】第 6 章:Vim 中的文本变换及替换操作 + S06L20:文本的插入、变更、替换,以及合并操作