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

在线升级 redis 到7.2.2

1. 操作环境与升级思路

  1. 先安装新的版本
  2. 新版本设置主从备份,将老版本与新版本的数据进行同步
  3. 新启动一个服务,连接新版本redis,切换到新服务,关闭主从备份
  4. kill 老服务, 卸载老版本redis

因为我需要 RedisSearch 所以直接安装 Redis Stack Server
Redis Stack Server 由 Redis,RedisSearch,RedisJSON,RedisGraph,RedisTimeSeries 和 RedisBloom 组成1

2 ubuntu 操作步骤

安装环境

lsb_release -a               
# Distributor ID: Ubuntu
# Description:    Ubuntu 20.04.1 LTS
# Release:        20.04
# Codename:       focal

安装版本 redis-stack-server-7.2.0-v5

2.1 安装新的版本2

参考的是官方文档

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis-stack-server

2.2 新版本设置主从备份,将老版本与新版本的数据进行同步

将老版本的数据同步到新版本,因为是一次性的,所以直接命令行操作就行。

配置文件在 /opt/redis-stack/etc/redis-stack.conf,如果需要修改端口,就修改这个文件就可以,具体参考官方详细示例
我的配置内容如下

port 6380
daemonize yes
requirepass password

修改 redis-stack-server 命令,将最后的启动参数 --daemonize no 注释掉,如下

........省略上面的内容
echo "Starting redis-stack-server, database path ${REDIS_DATA_DIR}"
# 注释掉 daemonize 参数
# --daemonize no \
${CMD} \
${CONFFILE} \
--dir ${REDIS_DATA_DIR} \
--protected-mode no \
--loadmodule ${MODULEDIR}/rediscompat.so \
--loadmodule ${MODULEDIR}/redisearch.so ${REDISEARCH_ARGS} \
--loadmodule ${MODULEDIR}/redistimeseries.so ${REDISTIMESERIES_ARGS} \
--loadmodule ${MODULEDIR}/rejson.so ${REDISJSON_ARGS} \
--loadmodule ${MODULEDIR}/redisbloom.so ${REDISBLOOM_ARGS} \
--loadmodule ${MODULEDIR}/redisgears.so v8-plugin-path ${MODULEDIR}/libredisgears_v8_plugin.so  ${REDISGEARS_ARGS} \
$*

启动并开启主从同步3

# 启动 redis
redis-stack-server
# 连接 redis
redis-cli -h localhost -p 6780 -a "password"
# 在redis-cli 命令行窗口里面执行
# 设置主从备份
REPLICAOF host port
# 如果 master 开启了密码,设置一下masterauth 参数
config set masterauth <password2>

2.3 新启动一个服务,连接新版本redis,切换到新服务,关闭主从备份

我的服务是 Java 启动的,所以修改一下配置文件,重新启动一个新服务就可以

# 开启新服务
nohup java -jar project.jar  --spring.profiles.active=prod-stage > /dev/null 2>&1 &
# nginx 切换请求到新服务,修改配置文件,重载nginx
nginx -s reload
# 关闭主从备份,否则新版本redis是仅读状态
redis-cli -h localhost -p 6780 -a "password"
# 在redis-cli 命令行窗口里面执行
REPLICAOF NO ONE

2.4 kill 老服务, 卸载老版本redis

# 查找就服务的 进程号
ps -ef|grep project.jar
# 干掉老服务
kill -9 old_pid
# 卸载老版本 redis
apt remove redis-server

3 centos 操作步骤

3.1 安装新版本

  1. 创建文件 /etc/yum.repos.d/redis.repo,内容如下
[Redis]
name=Redis
baseurl=http://packages.redis.io/rpm/rhel7
enabled=1
gpgcheck=1
  1. 执行命令
curl -fsSL https://packages.redis.io/gpg > /tmp/redis.key
sudo rpm --import /tmp/redis.key
sudo yum install epel-release
sudo yum install redis-stack-server

3.2 接下来的步骤与 Ubuntu 的剩下步骤时一样的

4. 遇见的问题

  1. 在执行 sudo yum install epel-release 遇见错误4
    CentOS Linux 8 - AppStream 184 B/s | 38 B 00:00
    Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist
    The command ‘/bin/sh -c yum install java -y’ returned a non-zero code: 1
    解决方案:
cd /etc/yum.repos.d/
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
sudo yum update -y
  1. 在centos启动redis时遇见如下错误5
    WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition.
    执行 sysctl "vm.overcommit_memory=1" 即可

  2. 在centos启动redis时遇见如下错误6
    libssl.so.10: cannot open shared object file: No such file or directory
    执行命令 yum install compat-openssl10 即可


  1. Redis Stack 的那些事儿 ↩︎

  2. Install Redis Stack on Linux ↩︎

  3. Redis主从复制的配置和实现原理 ↩︎

  4. Error: Failed to download metadata for repo ‘appstream’ ↩︎

  5. Redis: Warning Memory overcommit must be enabled ↩︎

  6. libssl.so.10: cannot open shared object file: No such file or directory ↩︎

相关文章:

在线升级 redis 到7.2.2

1. 操作环境与升级思路 先安装新的版本新版本设置主从备份&#xff0c;将老版本与新版本的数据进行同步新启动一个服务&#xff0c;连接新版本redis&#xff0c;切换到新服务&#xff0c;关闭主从备份kill 老服务, 卸载老版本redis 因为我需要 RedisSearch 所以直接安装 Redi…...

社区新零售:改变生活方式的创新商业模式

社区新零售&#xff1a;改变生活方式的创新商业模式 社区新零售&#xff0c;顾名思义&#xff0c;以社区为核心&#xff0c;利用互联网、大数据、人工智能等先进技术&#xff0c;将线上购物和线下体验有机结合&#xff0c;形成一种全新的零售模式。它特别强调地理位置的便利性&…...

MySQL/SQLServer判断字符是纯数字或者是其它字符

如下是MySQL表结构设计&#xff08;演示所用&#xff09;&#xff1a; MySQL表关联数据如下所示&#xff1a; 【场景&#xff1a;查询所有数字&#xff0c;包含小数点】&#xff0c;SQL如下所示&#xff1a; SELECT * FROM data WHERE message not REGEXP [^0-9].[^0-9] My…...

Threejs_02 父子位移+缩放改变

threejs中如何做出一堆父子来呢&#xff1f; 父子制作 1.做一个父元素 想要做一个元素 需要材质和模型&#xff0c;然后使用threejs的方法THREE.Mesh就可以制作出来 // 创建一个集合体 (立方体) const geometry new THREE.BoxGeometry(1, 1, 1); // 创建材质 (16进制颜色…...

LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)

示例 -- 本库当前支持Air101/Air103/ESP32/ESP32C3/ESP32S3 -- 用法请查阅demo, API函数会归于指定的模式-- 名称解释: -- peripheral 外设模式, 或者成为从机模式, 是被连接的设备 -- central 中心模式, 或者成为主机模式, 是扫描并连接其他设备 -- ibeacon 周期性的be…...

医疗器械展示预约小程序的效果如何

医疗器械行业涵盖的内容非常广&#xff0c;市场中大小从业的品牌/门店也很多&#xff0c;比如我们常见的轮椅、康复器械、拐杖、血压仪等产品市场需求都非常高&#xff0c;当然还有医院里用的器械等。 医疗器械市场呈现多品牌、多门店的发展趋势&#xff0c;虽然这些东西不是必…...

【Vue原理解析】之异步与优化

引言 Vue是一款流行的JavaScript框架&#xff0c;它提供了一些强大的特性来提升应用程序的性能和用户体验。在本文中&#xff0c;我们将深入探讨Vue的异步更新机制和一些优化技巧&#xff0c;帮助您更好地理解和应用这些特性。 异步更新机制 Vue使用异步更新机制来提高渲染性…...

mybatis、mysql 创建时间(create_time)异常自动更新为当前时间

目录标题 一、问题二、原因三、解决 一、问题 bug: mybatis更新代码没有修改时间&#xff0c;但是时间会自动更新为当前时间。 。。。 被坑了挺久 二、原因 可能是创建表的时候&#xff0c; Navicat Premium 等可视化工具给你整活了。。。 三、解决 取消勾选。 注意&…...

shardingsphere 加载慢 优化

shardingsphere加载慢 优化 原因&#xff1a; 启动速度变慢(元数据扫描耗时较长) 占用内存增多(大量单表和元数据对象) 那是因为默认扫描1张表.一张一张加载巨慢,添加以下配置增加到20张表同时扫描 错误&#xff1a; 如果你数据库最大连接不到20就会报错&#xff0c;请按照数据…...

我这些年对于自动化测试的理解

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…...

Java安全架构 JCA、JCE、JSSE、JAAS

Java语言拥有三大特征&#xff1a;平台无关性、网络移动性和安全性&#xff0c;而Java安全体系结构对这三大特征提供了强大的支持和保证&#xff0c; Java安全体系结构总共分为4个部分&#xff1a; &#xff08;1&#xff09;JCA&#xff08; Java Cryptography Architecture…...

面试经典(4/150)删除有序数组中的重复项 II

面试经典&#xff08;4/150&#xff09;删除有序数组中的重复项 II 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c; 返回删除后数组的新长度。不要使用额外的数组空间&#xff0c;你必须在 原…...

使用WildCard充值ChatGPT Plus 会员

登录 wildCard官网 基于国内手机号注册账号&#xff0c;使用支付宝验证付款即可自动申请国外银行卡&#xff0c;WildCard的开卡费是9.9美元, 没有后续的月费用.订阅chatgpt plus会员服务的操作图文指南见链接 chatgpt plus会员订阅指南...

element-plus使用el-date-picker组件时,如何禁止用户选择当前时间之后的日时分秒

element-plus使用el-date-picker组件时&#xff0c;如何禁止用户选择当前时间之后的日时分秒 例&#xff1a; 当前时间为2023-11-15 14.24&#xff0c;不能选择这之后的时分秒。&#xff08;禁止用户选择2023-11-15 14.28&#xff09; <el-date-pickerv-model"form.s…...

keepalived安装配置(服务器主备、负载均衡)

系统拓扑 安装keepalived 主备服务器上都需要安装 在线安装 yum install -y keepalived 离线安装 # todo 服务器准备 虚拟机ip&#xff1a;192.168.11.56 主服务器&#xff1a;192.168.11.53 备服务器&#xff1a;192.168.11.54 配置文件修改 keepalived安装之后&…...

盘点一款制作电子杂志的网站,小白也能快速上手

​电子杂志作为一种时尚、环保、便捷的宣传形式&#xff0c;越来越受到各行各业的青睐。无论是企业宣传、产品推广&#xff0c;还是个人分享&#xff0c;电子杂志都能展现出独特的魅力。而制作电子杂志&#xff0c;不再是专业人士的专属&#xff0c;现在小白也能快速上手&#…...

全域全自主建设,亚信科技AntDB数据库助力广电5G业务上线运行

自2019年6月&#xff0c;中国广电成功获得5G牌照以来&#xff0c;迅速推进网络建设目标&#xff0c;成为5G网络覆盖广、应用场景多、用户体验出色的第四大运营商。其依托全球独有的700MHz频谱资源&#xff0c;具备覆盖能力强、容量足、速率高的优势。通过不断深化和中国移动的共…...

使用 SSH 密钥进行身份验证

使用 SSH 密钥进行身份验证可以提高安全性&#xff0c;并免去每次登录时输入密码的麻烦。以下是使用 SSH 密钥进行身份验证的步骤&#xff1a; 生成密钥对&#xff1a;在本地计算机上生成 SSH 密钥对。打开终端并执行以下命令&#xff1a; ssh-keygen -t rsa -b 4096这将生成…...

国内最受欢迎的电商API接口调用京东商品详情数据

国内实用的API接口 国内最受欢迎的7大API供应平台对比和介绍 本文将介绍7款API供应平台&#xff1a;电商API数据、百度e、Apix、数说聚合、通联数据、HaoService、datasift 。排名不分先后&#xff01; 免费实用的API接口 第一部分 1、电商数据&#xff08;API数据接口_开发者…...

windows远程桌面登录ubuntu,黑屏闪退,

首先需要安装xrdp以后才能远程登录&#xff0c;安装命令 sudo apt-get install xrdp 这里需要注意一个问题&#xff0c;如果在ubuntu 本地登录的情况下&#xff0c;windows远程登录会出现黑屏甚至闪退的问题。原因是本地登录和远程登陆是互斥的&#xff0c;本地登录了就不能远…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...