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.2ruby 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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划课堂6-----回文串问题

目录 引言&#xff1a; 例题1&#xff1a;回文子串 例题2&#xff1a;回文串分割IV 例题3&#xff1a;分割回文串II 例题4&#xff1a;最长回文子序列 例题5&#xff1a;让字符串成为回文串的最小插入次数 引言&#xff1a; 回文字符串 是正着读和倒过来读一样的字符串。…

【周赛】第385场周赛

&#x1f525;博客主页&#xff1a; A_SHOWY&#x1f3a5;系列专栏&#xff1a;力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 【1】100212.统计前后缀下标对 100212. 统计前后缀下标对 Ihttps://leetcode.cn/problems/count-prefix-and-suffix-pairs-i/ 熟…

4.1_4 文件的物理结构

文章目录 4.1_4 文件的物理结构&#xff08;一&#xff09;文件块、磁盘块&#xff08;二&#xff09;文件分配方式——连续分配&#xff08;三&#xff09;文件分配方式——链接分配&#xff08;1&#xff09;链接分配——隐式链接&#xff08;2&#xff09;链接分配——显式链…

OpenStack之存储cinder

一、 存储 1、DAS 1)存储更多的依赖服务器主机操作系统进行数据的IO读写和存储维护管理&#xff0c;数据备份和恢复要求占用服务器主机资源&#xff08;包括CPU、系统IO等&#xff09; 2)直连式存储与服务器主机之间的连接通道通常采用SCSI连接&#xff0c;随着服务器CPU的处…

Type-C接口介绍

1、USB介绍 &#xff08;1&#xff09;标准USB A型连接器&#xff08;左&#xff09;及B型连接器&#xff08;右&#xff09; 引脚1 VCC&#xff08;5V&#xff09; 引脚2 Data- 引脚3 Data 引脚4 接地 &#xff08;2&#xff09;Micro USB 引脚定义及OTG (USB-HOST) …

k8s CKA upgrade - Kubeadm 版本升级实测

升级版本最好是逐步去升级&#xff0c;不要跨越多个大版本&#xff0c;可能会出错 大体流程&#xff1a; 1.先确定升级版本 2.升级kubeadm 3.驱逐节点 4.升级kubelet和kubectl 5.重启kubelet服务 6.恢复节点&#xff0c;使其上线 1.查看现版本&#xff1a;升级版本 kubectl ge…

华为配置Hotspot2.0无线网络示例

配置Hotspot2.0无线网络示例 组网图形 图1 配置Hotspot2.0无线网络组网图 组网需求配置思路配置注意事项操作步骤配置文件 组网需求 某网络服务商在原有移动网络业务的基础上&#xff0c;新增部署WLAN网络接入业务&#xff0c;为用户提供更好的网络体验。但传统的WLAN网络业…

【每日一题】2024年3月汇编(上)

3.1【2369】检查数组是否存在有效划分 2369. 检查数组是否存在有效划分https://leetcode.cn/problems/check-if-there-is-a-valid-partition-for-the-array/ 1.这样的判断可以用动态规划来解决&#xff0c;用一个长度为(n1) 的数组来记录 是否存在有效划分&#xff0c;dp[i]…

Bean的作用域、Bean的自动装配、注解自动装配 (Spring学习笔记五)

1、Bean 的作用域 官网上显示有六种 1、Bean的作用域默认的是singleton&#xff08;单例模式的实现&#xff09; 也可以显示的设置&#xff08;单例模式的实现&#xff09; <!--用scope可以设置Bean的作用域--><bean id"user2" class"com.li.pojo.Us…

NCV8705MTADJTCG稳压器芯片中文资料规格书PDF数据手册引脚图图片价格功能

产品概述&#xff1a; NCV8705 是一款低噪音、低功耗和低泄漏线性电压稳压器。该器件具有卓越的噪音和 PSRR 规格&#xff0c;适用于使用视频接收器、成像传感器、音频处理器或需要外部洁净电源的任何部件的产品。NCV8705 使用创新的自适应接地电流电路 可确保轻负载调节下的超…

http请求方法15种,附图可以下载保存备查。

一、http请求组成和流程 HTTP请求是客户端&#xff08;如浏览器&#xff09;向服务器发送的请求&#xff0c;以获取特定资源或执行特定操作。HTTP请求由以下几个部分组成&#xff1a; 请求行&#xff1a;包含请求方法、请求的URL和HTTP协议版本。常见的请求方法有GET、POST、P…

数据结构的概念大合集01(含数据结构的基本定义,算法及其描述)

概念大合集01 1、数据结构基础的定义2、数据结构2.1 数据元素之间关系的集合2.2数据结构的三要素2.2.1数据的逻辑结构2.2.2数据的存储&#xff08;物理&#xff09;结构2.2.3数据的运算 3、数据类型4、抽象数据类型类型&#xff08;ADT&#xff09;5、算法及其描述5.1算法的5个…

Qt文件以及文件夹相关类(QDir、QFile、QFileInfo)的使用

关于Qt相关文件读写操作以及文件夹的一些知识&#xff0c;之前也写过一些博客&#xff1a; Qt关于路径的处理&#xff08;绝对路径、相对路径、路径拼接、工作目录、运行目录&#xff09;_qt 相对路径-CSDN博客 C/Qt 读写文件_qt c 读取文本文件-CSDN博客 C/Qt读写ini文件_…

Docker学习之数据管理(超详解析)

Docker存储资源类型&#xff1a; 用户在使用 Docker 的过程中&#xff0c;势必需要查看容器内应用产生的数据&#xff0c;或者需要将容器内数据进行备份&#xff0c;甚至多个容器之间进行数据共享&#xff0c;这必然会涉及到容器的数据管理&#xff1a; &#xff08;1&#xff…

(含代码)利用NVIDIA Triton加速Stable Diffusion XL推理速度

在 NVIDIA AI 推理平台上使用 Stable Diffusion XL 生成令人惊叹的图像 扩散模型正在改变跨行业的创意工作流程。 这些模型通过去噪扩散技术迭代地将随机噪声塑造成人工智能生成的艺术&#xff0c;从而基于简单的文本或图像输入生成令人惊叹的图像。 这可以应用于许多企业用例&…

【剑指offer--C/C++】JZ25 合并两个排序的链表

题目 思路 这个题目大逻辑比较简单&#xff0c;就是一个比较和穿插&#xff0c;但细节上要考虑清楚&#xff0c;可以画个图模拟一下。我这里是设置将两个链表拆开组成一个新的链表&#xff0c;这样不需要占用新的空间。两个指针对应节点的值进行比较&#xff0c;那个节点值较小…

【Stable Diffusion】入门-03:图生图基本步骤+参数解读

目录 1 图生图原理2 基本步骤2.1 导入图片2.2 书写提示词2.3 参数调整 3 随机种子的含义4 拓展应用 1 图生图原理 当提示词不足以表达你的想法&#xff0c;或者你希望以一个更为简单清晰的方式传递一些要求的时候&#xff0c;可以给AI输入一张图片&#xff0c;此时图片和文字是…

数据可视化学习:Matplotlib概述

一、图表的常用设置 1.基本绘图主要函数 (1).matplotlib.pyplot.plot(x,y,format_string,**kwargs) 2.参数说明 (1).x:x轴数据 (2).y:y轴数据 (3).format_string:控制曲线格式的字符串&#xff0c;包括颜色、线条样式和标记样式 (4)**kwargs:键值参数&#xff0c;相当于…

基础知识学习 -- qnx 系统

QNX是一个基于优先级抢占的系统。 这也导致其基本调度算法相对比较简单。因为不需要像别的通用操作系统考虑一些复杂的“公平性”&#xff0c;只需要保证“优先级最高的线程最优先得到 CPU”就可以了。 基本调度算法 调度算法&#xff0c;是基于优先级的。QNX的线程优先级&a…

VS调试快捷键

VS调试快捷键 4. VS调试快捷键4.1 环境准备4.2 调试快捷键调试最常使⽤的⼏个快捷键&#xff1a; 4. VS调试快捷键 那程序员怎么调试代码呢&#xff1f; 4.1 环境准备 首先是环境的准备&#xff0c;需要⼀个支持调试的开发环境&#xff0c;我们上课使用VS&#xff0c;应该把…