Redis:使用redis-dump导出、导入、还原数据实例

redis的备份和还原,借助了第三方的工具,redis-dump

1、安装必要环境

yum -y install zlib-devel openssl-devel

2、安装redis-dump
安装ruby:

ruby下载地址:https://www.ruby-lang.org/zh_cn/downloads/

我下载的是 2.5.0 版本

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz

ruby安装教程:

安装编译环境

yum install gcc-c++

先查看ruby安装过的版本

ruby -v

先卸载之前的版本(破后而立):

yum remove ruby

解压ruby:

tar -xvf ruby-2.5.0.tar.gz

创建要安装ruby的目录:

mkdir -p /usr/local/ruby

进入刚刚解压的目录里面:

cd ruby-2.5.0

配置并指定要安装ruby的目录:

./configure --prefix=/usr/local/ruby

编译:

make

安装:

make install

建立快捷方式:

ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby

查看ruby是否安装成功:

ruby -v
显示: 
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

手动安装rubygems

有两种安装方式:
1.yum方式安装
2.源码方式安装

源码安装rubygems:

下载 rubygems-x.x.x.zip 包,下载地址:Download RubyGems | RubyGems.org | your community gem host 点击下载ZIP

wget https://rubygems.org/rubygems/rubygems-3.5.6.zip

解压:

unzip rubygems-3.1.2.zip

安装:

cd  rubygems-3.1.2

ruby setup.rb

YUM安装rubygems:

安装依赖环境:

yum -y install zlib-devel openssl-devel

安装rubygems

yum install rubygems -y

解压,进入 rubygems 解压目录 bin 目录下安装 redis-dump

./gem install redis-dump -V

如果报错提示 ruby版本过低,则先安装以下内容

./gem install uri-redis -v 0.4.2
./gem install yajl-ruby -v 1.4.1

设置软连

ln -s /usr/local/ruby/bin/redis-dump /usr/local/bin/redis-dump
ln -s /usr/local/ruby/bin/redis-load /usr/local/bin/redis-load

3使用:

导出:

redis-dump -u 127.0.0.1:6379 > data.json

# 导出指定数据库中的数据,比如说 0 号数据库
redis-dump -u 127.0.0.1:6379 -d 0 > data8.json

# 如果 redis 设置了有密码
redis-dump -u {host} -a {password} > data.json
redis-dump -u :{password}@127.0.0.1:6379 > data.json

# 如果需要导出的 redis 是一个 URL 连接地址时,貌似可以这样(没有实操过,具体不清楚)
redis-dump -u :{password}@{domain}:{port}
# eg: redis-dump -u :123456@www.alex.com:9055

恢复:

# 导入命令
cat data.json | redis-load
# 或者
< data.json redis-load

# 导入数据到 8 号数据库
cat data8.json | redis-load -u 127.0.0.1:6379 -a 123456 -d 0
# 或者
< data8.json redis-load -u 127.0.0.1:6379 -a 123456 -d 0
# 如果以上命令是因为 utf-8 格式报错时,可以加上 `-n` 参数
cat data8.json | redis-load -n -u 127.0.0.1:6379 -a 123456 -d 0
# 这里需要注意如果你导出的DB与导入的DB不一致,则会导入失败

如果想导入到别的db库里面可以使用sed进行替换库号:

sed 's/"db":0/"db":1/g' 40-6401-redis-db-0.json > output-40-6401-redis-db-1.json

补充:
问题一:

解决 podinstall 出现 incompatible character encodings: UTF-8 and ASCII-8BIT 的问题

问题分析:

1、查看podfile文件是否存在不合法的字符,检查格式。
2、可能是 Ruby的版本号,与当前Cocoapods不适配使用。

版本号不适配处理方案:
1、卸载当前的ruby,重新安装ruby

查看当前ruby版本号
ruby -v

结果如下:
ruby 2.6.8p205 (2021-07-07 revision 67951) [x86_64-darwin21]

不建议使用最新的版本,可能存在问题,最好使用比较稳定的版本,2.6 或2.7 的版本

问题二:
导入过程中提示如下错误

edis/dump.rb:236:in block in set_value_set’)Redis#sadd will always return an Integer in Redis 5.0.0. Use Redis#sadd? instead.(called fron: /usr/local/ruby/lib/ruby/gems/2.7.0/gems/redis-dump-0.4.0/lib/r edis/dump.rb:236:in `block in set_value_set’)

AI的回答:


这个警告是由于在 Ruby Gem 的 redis-dump 中的代码中使用了 Redis#sadd 方法,而在 Redis 5.0.0 中,Redis#sadd 方法会始终返回一个整数值而不是 OK。

为了解决这个问题,建议你更新 redis-dump 的版本,或者修改 redis-dump 的代码,将 Redis#sadd 方法替换为 Redis#sadd? 方法。 Redis#sadd? 方法在 Redis 5.0.0 中会返回 true,表示添加成功,否则返回 false。

如果你能访问 redis-dump 的源代码,可以在 redis/dump.rb 文件的 236 行处找到该代码,将其中的 sadd 替换为 sadd?

You: 这个信息是指报错了吗?


不完全是。这个警告信息告诉你,在Redis 5.0.0版本中,Redis#sadd方法的行为已经改变了,它现在总是返回一个整数,而不是以前的OK。因此,在使用Redis#sadd方法时,可能会导致代码在运行时出现意外行为,因为它不再返回预期的值。

警告建议你更新你的代码,使用新的Redis#sadd?方法来替换Redis#sadd,以确保在Redis 5.0.0版本下仍然能够正常工作,并避免因此而引起的问题。
/usr/local/ruby/lib/ruby/gems/2.7.0/gems/redis-dump-0.4.0/lib/redis/dump.rb

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/458336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统下基于VSCode和Cmake进行C++开发

目录 简介一、GCC编译器1.1创建cpp文件1.2编译过程1.3g重要编译参数 二、GDB调试器三、IDE-VScode3.1 VSCode常用快捷键3.2 swap测试 四、CMake4.1CMake介绍4.2 CMake语法特性介绍4.3 CMake重要指令和常用变量4.4 CMake编译流程4.5CMake代码实践 五、使用VSCode进行完整项目开发…

Gateway网关在url参数带有特殊字符的情况下转发失败(响应400)

本文主要分享了&#xff0c;SpringCloud Gateway网关在url参数带有空格或者特殊字符的情况下&#xff0c;转发失败导致响应错误码400的解决方案。 响应400错误码的2种场景&#xff1a; 1.参数带空格&#xff0c;Gateway会误认为该空格是切割符&#xff0c;如?phone 135****6…

B/S基于云计算的云HIS智慧医院管理系统源码带电子病历编辑器

目录 一、系统概述 二、开发环境 三、系统功能 1、门诊部分 2、住院部分 3、电子病历 4、药物管理 5、统计报表 6、综合维护 7、运营运维 云HIS系统&#xff1a;病案首页 云his系统源码 SaaS应用 功能易扩 统一对外接口管理 现如今&#xff0c;大数据、云计算、移动…

深入浅出计算机网络 day.2 概论⑥ 计算机网络体系结构

上帝疯狂杜撰世界悲情的命题 将凉薄和荒芜尽写 —— 24.3.13 内容概述 1.常见的三种计算机网络体系结构 2.计算机网路体系结构分层的必要性 3.计算机网络体系结构分层思想举例 4.计算机网络体系结构中的专用术语 一、常见的三种计算机网络体系结构 1.OSI参考模型 …

Linux第77步_处理Linux并发的相关函数

了解linux中的“原子整形数据”操作、“原子位数据”操作、自旋锁、读写锁、顺序锁、信号量和互斥体&#xff0c;以及相关函数。 并发就是多个“用户”同时访问同一个共享资源。如&#xff1a;多个线程同时要求读写同一个EEPROM芯片&#xff0c;这个EEPROM就是共享资源&#x…

运行vue项目时的问题

1.问题:在终端输入:npm run serve时&#xff0c;弹出选择应用以打开npm 2.解决方法: 在你的终端中输入&#xff1a;get-command npm&#xff08;第一次可能没反应 再输入一次&#xff09; 根据这个路径找到npm删除即可 再次运行npm run serve

谈谈你对Java平台的理解?

从你接触 Java 开发到现在&#xff0c;你对 Java 最直观的印象是什么呢&#xff1f;是它宣传的 “Write once, run anywhere”&#xff0c;还是目前看已经有些过于形式主义的语法呢&#xff1f;你对于 Java 平台到底了解到什么程度&#xff1f;请你先停下来总结思考一下。 今天…

VSCode提交代码

VSCode提交代码方式&#xff1a; 先在电脑本地文件夹中打开git的bash窗口使用git clone https://github.com/xxxx/克隆仓库地址到本地&#xff0c;并生成一个项目的文件夹打开VSCode&#xff0c;点击文件按钮&#xff0c;打开加载项目的文件夹对于VSCode设置Git路径&#xff…

【小黑嵌入式系统第十九课】结课总结(三)——操作系统部分(RTOSμC/OS-Ⅲ程序设计基础(任务函数时间临界区通信))

上一课&#xff1a; 【小黑嵌入式系统第十八课】结课总结&#xff08;二&#xff09;——软件部分&#xff08;系统架构&调试&测试&运行&系统软件设计&#xff09; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0…

迷你洗衣机排名前十名:2024年十大性能超强内衣洗衣机优选

随着现在的生活水平的不断提高&#xff0c;高科技能帮我们搞定不少问题&#xff0c;如果你比较注重个人卫生、追求生活品质&#xff0c;可以考虑选择一台专用的迷你洗衣机&#xff0c;我们就无须自己亲自动手去清洗内衣物&#xff0c;从而导致浪费时间&#xff0c;如果你担心孩…

Docker常见指令

1.docker search mysql &#xff1a;从docker镜像仓库搜索和mysql有关的镜像 docker search mysql 2.docker pull mysql &#xff1a;从docker仓库拉取mysql镜像 docker pull mysql 3.docker run mysql &#xff1a;启动mysql镜像 docker run mysql 4.docker ps &#xff…

iconfont 字体应用

1、登录 打开阿里图标 https://www.iconfont.cn/ 2、选择心仪的图标制作 iconfont 字体。 3、图标全部选择入库之后&#xff0c; 点右上角的购物车。 添加到项目&#xff0c;是方便管理图标字体的。 也可以直接下载代码的 4、下载到本地之后&#xff0c;把里面的 iconfont.…

altgraph的安装和用途说明

前言 altgraph 是 graphlib 的一个分支&#xff1a;一个图&#xff08;网络&#xff09;包&#xff0c;用于构建图、BFS 和 DFS 遍历、拓扑排序、最短路径等&#xff0c;带有 graphviz 输出。 安装 pip install altgraph 函数和用例 生物链 from altgraph import Graph# 定…

linux查看服务器登录成功和登录失败的命令

last 查看成功登录服务器的信息&#xff0c;包括ip&#xff0c;时间&#xff0c;登录用户&#xff0c;时长。lastb 查看登录服务器失败的信息。 last命令实例&#xff1a; 其他参数&#xff1a; -a&#xff1a;把从何处登入系统的主机名称或ip地址&#xff0c;显示在最后一行…

软件设计师16--段页式存储

软件设计师16--段页式存储 考点1&#xff1a;页式存储存储管理 - 页式存储组织存储管理 - 页面置换算法例题&#xff1a; 考点2&#xff1a;段式存储存储管理 - 段式存储组织例题&#xff1a; 考点1&#xff1a;页式存储 存储管理 - 页式存储组织 页式存储&#xff1a;将程序…

MySQL数据表的增删改查(基础)(CRUD)

1.CRUD 注释&#xff1a;在SQL中可以使用“--空格描述”来表示注释说明. CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写. 2.新增(Create) 语法: insert into 表名 values (值,值...); into --可以省略; values -- 关键字. 下面以一…

IDEA编写各种WordCount运行

目录 一、编写WordCount(Spark_scala)提交到spark高可用集群 1.项目结构 2.导入依赖 3.编写scala版的WordCount 4.maven打包 5.运行jar包 ​6.查询hdfs的输出结果 二、本地编写WordCount(Spark_scala)读取本地文件 1.项目结构 2.编写scala版的WordCount 3.编辑Edit …

HDFS的架构优势与基本操作

目录 写在前面一、 HDFS概述1.1 HDFS简介1.2 HDFS优缺点1.2.1 优点1.2.2 缺点 1.3 HDFS组成架构1.4 HDFS文件块大小 二、HDFS的Shell操作&#xff08;开发重点&#xff09;2.1 基本语法2.2 命令大全2.3 常用命令实操2.3.1 上传2.3.2 下载2.3.3 HDFS直接操作 三、HDFS的API操作3…

influxdb2使用

&#xff08;作者&#xff1a;陈玓玏&#xff09; influxdb2首次使用时&#xff0c;通过k8s部署的&#xff0c;所以进入pod内部执行命令。 先在k8sdashboard找到influx的pod&#xff0c;点击执行&#xff0c;即可进入命令行界面。 首次连接时&#xff0c;通过influx setup启动…

Tomcat部署web项目与idea中配置web项目方法【通俗易懂】

✨前言✨   本文章主要介绍tomcat环境的配置&#xff0c;idea配置web项目&#xff0c;idea一般项目中配置tomcat&#xff0c;内容有点长&#xff0c;建议点击目录跳转阅读&#xff0c;文中所含均为官方文件&#xff0c;请放心使用。 &#x1f352;欢迎点赞 &#x1f44d; 收藏…