Redis7降级6备份不过期数据操作

2024-05-10 06:28

本文主要是介绍Redis7降级6备份不过期数据操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Redis7降级6备份不过期数据操作

搜到三种备份方法
  • rdb版本11-》redis7;rdb版本9-》redis6;不兼容,版本太高无第三方工具转换。其中那个rdbtool白瞎断更好久了。
  • aof 使用aof -fix,文件大小没变,读取不了数据;不兼容,版本太高无第三方工具转换。找不到第三方工具,可能国内环境吧。
  • 使用redis-dump,需要ruby环境,ruby高版本在linux需要rvm,究极难安装,可能是虚拟机环境问题吧,其他服务器没有尝试,感觉是网络原因。尝试安装失败;windows安装成功ruby成功,redis-dump执行失败,不支持winodw远程连接redis,牛比plus。---------失败

好了以上三种方式浪费了大半天时间,文件不兼容是早就知道的事情。换个思路。因为数据量比较小。只考虑备份redis中ttl数据,其他数据不重要。
  • lua脚本cjson encode导出redis数据到json文件,导出成功后,cjson的decode无法导入,奇葩。脚本是ok的。估计是json格式或者数据编码的问题,而且lua脚本中require在redis容器里还有限制使用。。。---------失败

新建思路: 需要将redis7降级,新增redis6容器,端口号、挂载目录、容器名称区分开,其他不变,开启aof哦。首选bash,,python要装环境,,服务器也不是随便乱动的地方,唉,巧妇难为无米之炊。
前提:非正式环境!自己考虑正式环境就别降级了,数据参差不齐的。

就是进入redis7容器内部, 查找所有key,取ttl=-1的key进行操作,赋值给变量后,火速到redis6的容器内部,进行set操作。一共20条数据哈。此时,redis6的data目录下的aof和rdb就是新鲜的20条数据的低版本文件了。

docker stop redis7。直接将上一步redis6的aof和rdb放到redis7下,,修改redis7的镜像号,compose即可。重建容器后,里边就只剩下ttl=-1的数据了。

gpt帮助的脚本内容。SET命令后不需要添加EX -1
#!/bin/bash# Docker Redis1 连接信息
REDIS1_CONTAINER="redis7"
REDIS1_HOST=host
REDIS1_PORT=63179
REDIS1_PW=xx# Docker Redis2 连接信息
REDIS2_CONTAINER="redis6"
REDIS2_HOST=host
REDIS2_PORT=63279
REDIS2_PW=xx# 在 Docker Redis1 中查询所有 ttl=-1 的键值对和过期时间
KEYS=$(docker exec $REDIS1_CONTAINER redis-cli -h $REDIS1_HOST -p $REDIS1_PORT -a $REDIS1_PW --raw keys '*')
for KEY in $KEYS; doTTL=$(docker exec $REDIS1_CONTAINER redis-cli -h $REDIS1_HOST -p $REDIS1_PORT -a $REDIS1_PW ttl $KEY)# 使用整数比较if [ "$TTL" -eq -1 ]; thenVALUE=$(docker exec $REDIS1_CONTAINER redis-cli -h $REDIS1_HOST -p $REDIS1_PORT -a $REDIS1_PW --raw get $KEY)echo "Redis1 Key: $KEY, Value: $VALUE"# 在 Docker Redis2 中执行 SET 命令,并设置过期时间docker exec $REDIS2_CONTAINER redis-cli -h $REDIS2_HOST -p $REDIS2_PORT -a $REDIS2_PW set $KEY "$VALUE"echo "Redis2 Key: $KEY, Value: $VALUE"fi
doneecho "Data synchronization complete."

这篇关于Redis7降级6备份不过期数据操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975687

相关文章

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

Java Stream流以及常用方法操作实例

《JavaStream流以及常用方法操作实例》Stream是对Java中集合的一种增强方式,使用它可以将集合的处理过程变得更加简洁、高效和易读,:本文主要介绍JavaStream流以及常用方法... 目录一、Stream流是什么?二、stream的操作2.1、stream流创建2.2、stream的使用2.

MySQL容灾备份的实现方案

《MySQL容灾备份的实现方案》进行MySQL的容灾备份是确保数据安全和业务连续性的关键步骤,容灾备份可以分为本地备份和远程备份,主要包括逻辑备份和物理备份两种方式,下面就来具体介绍一下... 目录一、逻辑备份1. 使用mysqldump进行逻辑备份1.1 全库备份1.2 单库备份1.3 单表备份2. 恢复

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre