iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis数据导入导出以及数据迁移的方法有哪些
  • 483
分享到

Redis数据导入导出以及数据迁移的方法有哪些

2024-04-02 19:04:59 483人浏览 泡泡鱼
摘要

这篇文章主要介绍了Redis数据导入导出以及数据迁移的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、aof 导入方式。因为这种

这篇文章主要介绍了Redis数据导入导出以及数据迁移的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1、aof 导入方式。

因为这种方式比较简单,所以我就先介绍它。

分两步来实现,第一步先让源 Redis 生成 AOF 数据文件。

# 清空上文目标实例全部数据
redis-cli -h 目标RedisIP -a passWord flushall
# 源实例开启 aof 功能,将在 dir 目录下生成 appendonly.aof 文件
redis-cli -h 源RedisIP -a password config set appendonly yes

dir 目录,可以通过 config get dir 目录获得。

config get dir
# 比如我的 Mac 上执行上面的命令后,返回如下内容
1) "dir"
2) "/usr/local/var/db/redis"

通过上面的命令,我们可以看到我本地的 dir 目录是:/usr/local/var/db/redis。

现在我们来做第二步操作,让目标 Redis 实例导入 aof 数据。

# 将 appendonly.aof 文件放在当前路径下
redis-cli -h 目标RedisIp -a password --pipe < appendonly.aof
# 源实例关闭 aof 功能
redis-cli -h 源RedisIp -a password config set appendonly no

上面的第一个命令,执行后,如果出现以下内容,则表示导入 aof 数据成功。

All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5

我这里是测试,数据比较少,所以提示有 5 个导入成功了。

AOF 的缺点也很明显,就是速度慢,并且如果内容多的话,文件也比较大。而且开启 AOF 后,QPS 会比 RDB 模式写的 QPS 低。还有就是 AOF 是一个定时任务,可能会出现数据丢失的情况。

2、通过我的 xttblog_redis_mv.sh 脚本来实现。

我的脚本内容如下:

#!/bin/bash

#redis 源ip
src_ip=192.168.1.4
#redis 源port
src_port=6379

#redis 目的ip
dest_ip=127.0.0.1
#redis 目的port
dest_port=6389

#要迁移的key前缀
key_prefix=

i=1

redis-cli -h $src_ip -p $src_port -a password keys "${key_prefix}*" | while read key
do
  redis-cli -h $dest_ip -p $dest_port -a password del $key
  redis-cli -h $src_ip -p $src_port -a password --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a password -x restore $key 0
  echo "$i migrate key $key"
  ((i++))
done

大家在使用的时候,只需要替换 IP 即可。

这个脚本同样有一个问题就是使用了 keys *,然后一个一个遍历,如果是生产环境,不建议这样使用!当然我的脚本也是可以再进行优化的!

3、使用 redis-dump 工具

Redis-Dump 是一个用于 Redis 数据导入 / 导出的工具,是基于 Ruby 实现的,可以方便的进行 redis 的数据备份。这个工具需要先安装,以我的 Mac 为例,安装教程如下:

# 没安装 ruby 的话,先安装 ruby
brew install ruby
# 移除 gem 自带源
gem sources --remove https://rubygems.org/ 
# 添加淘宝源
gem sources -a Https://ruby.taobao.org/ 
# 安装 redis-dump
gem install redis-dump -V

目前我发现,淘宝的镜像已经出现 bad response Not Found 404 了,被告知镜像维护站点已迁往 Ruby China 镜像。

# 替换镜像地址
gem sources --add http://gems.ruby-china.org/ --remove http://rubygems.org/
# 确认镜像地址是否替换成功
gem sources -l
# 替换成功后再安装 redis-dump
gem install redis-dump -V

安装完成后,就可以使用 redis-dump 工具进行数据的导入导出了!

# redis-dump 导出
redis-dump -u :password@源RedisIp:6379 > 源Redis数据文件.JSON
# redis-load 导入
cat 源Redis数据文件.json | redis-load -u :password@目标RedisIp:6379

cat 源Redis数据文件.json | redis-load -u :password@目标RedisIp:6379

linux 系统或者 Window 系统也都类似,安装 redis-dump 工具完成后直接使用 redis-dump 导出,redis-load 导入即可完成数据的备份与迁移。

redis-dump 工具很强大,建议大家到官网上多看看它的官方文档。

4、rdb 文件迁移

redis-dump 麻烦就麻烦在需要进行安装,如果我的 Redis 已经有备份机制,比如有 rdb 文件,那么我们直接迁移 rdb 文件就可以达到同样的目的。

首先,我们可以先关闭源 Redis 实例的 aof 功能。如果不关闭 aof,Redis 默认用 aof 文件来恢复数据。

# 源实例关闭 aof 功能
redis-cli -h 源RedisIp -a password config set appendonly no

然后使用 save 命令把数据固化到 rdb 文件中。

# 固化数据到 RDB 文件
save

save 完成后,还是通过 config get dir 命令获得保存的 RDB 数据文件位置。

接下来,我们需要杀死 redis 进程。杀掉当前 redis 的进程,否则下一步的复制 rdb 文件,rdb 处于打开的状态,复制的文件,会占用同样的句柄。

kill -9 redis
# 或者
pkill -9 redis
# 或者手段关闭 Redis 服务

然后复制源 redis 的 rdb 文件到目标 Redis 的 dir 数据目录,名字为你要迁移的 redis 的 rdb 文件名。

复制完成后,重启目标 Redis 实例,数据就迁移完成了。 重启完成后可以验证一下数据是否成功的复制了。

感谢你能够认真阅读完这篇文章,希望小编分享的“Redis数据导入导出以及数据迁移的方法有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: Redis数据导入导出以及数据迁移的方法有哪些

本文链接: https://www.lsjlt.com/news/56071.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis数据导入导出以及数据迁移的方法有哪些
    这篇文章主要介绍了Redis数据导入导出以及数据迁移的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、aof 导入方式。因为这种...
    99+
    2024-04-02
  • MySQL数据备份、还原、数据库迁移以及表的导出和导入
    目录前言一、数据备份1、使用mysqldump命令备份2、直接复制整个数据库目录3、使用mysqlhotcopy工具快速备份二、数据还原1、使用mysql命令还原2、直接复制到数据库目录三、数据库迁移1、相同版本的MyS...
    99+
    2024-04-02
  • R语言导入导出数据的方法有哪些
    这篇文章主要介绍R语言导入导出数据的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!导出:对于某一数据集导出文件的方法导出例子:write.csv(data_1,file = "d:/1111111...
    99+
    2023-06-08
  • oracle导入导出数据的方式有哪些
    Oracle数据库有多种方式可以导入和导出数据。以下是常用的几种方式:1. 使用SQL Developer:Oracle提供了一个免...
    99+
    2023-08-23
    oracle
  • MySQL数据导入和导出纯数据的方式有哪些
    小编给大家分享一下MySQL数据导入和导出纯数据的方式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Mysql数据库的导入导出方式有哪些
    本文小编为大家详细介绍“Mysql数据库的导入导出方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql数据库的导入导出方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。情况一本地导出,远程导...
    99+
    2023-07-05
  • CMS数据导入导出完全指南:轻松实现数据迁移
    CMS数据导入导出是CMS数据管理的重要组成部分,可以帮助您在不同系统之间轻松传输数据,实现数据迁移,加强数据的灵活性。无论您是想要将数据从一个CMS迁移到另一个CMS,还是想要将数据从CSV、XML等格式导入到CMS,还是想要将数据从...
    99+
    2024-02-25
    CMS 数据迁移 数据导入 数据导出 常见格式 操作步骤 注意事项
  • MySQL数据库导入导出数据的方法
    这篇文章主要介绍“MySQL数据库导入导出数据的方法”,在日常操作中,相信很多人在MySQL数据库导入导出数据的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL数...
    99+
    2024-04-02
  • redis数据如何导入导出
    redis数据导入导出的方法:通过redis-dump工具进行导入导出,在终端命令行通过以下命令进行安装。//安装redis-dump工具[root@202.102.221.13 ~]$ yum install ruby rubygems ...
    99+
    2024-04-02
  • Mysql数据导出的方法有哪些
    使用命令行工具导出数据:可以使用mysql命令行工具,使用SELECT … INTO OUTFILE语句将查询结果导出为...
    99+
    2024-04-09
    Mysql
  • MySQL数据备份、还原、数据库迁移及表的导出和导入怎么实现
    本篇内容介绍了“MySQL数据备份、还原、数据库迁移及表的导出和导入怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2022-11-30
    mysql
  • mysql导入导出数据库以及函数的过程
    本篇内容主要讲解“mysql导入导出数据库以及函数的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql导入导出数据库以及函数的过程”吧!常用导出数据命...
    99+
    2024-04-02
  • 数据迁移不再难:CMS 导入导出实用宝典
    ...
    99+
    2024-04-02
  • plsql导入数据的方法有哪些
    在PL/SQL中,可以使用以下方法来导入数据:1. 使用INSERT语句:使用INSERT INTO语句将数据从一个表插入到另一个表...
    99+
    2023-10-19
    plsql
  • MySQL导入数据的方法有哪些
    MySQL导入数据的方法有以下几种: 使用MySQL命令行工具:可以使用mysql命令来导入数据,语法如下: mysql -u ...
    99+
    2024-04-09
    MySQL
  • sqlite导入数据的方法有哪些
    在SQLite中,可以通过以下方法导入数据: 使用SQLite的命令行工具导入数据:可以使用sqlite3命令行工具,通过执行S...
    99+
    2024-04-10
    sqlite
  • Oracle数据库导入导出逻辑备份方法有哪些
    这篇文章主要介绍Oracle数据库导入导出逻辑备份方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!【EXP常用参数】USERID  即用户名/密码该参数就必须且为第...
    99+
    2024-04-02
  • python导入导出redis数据的实现
    目录一.导出redis某个库的数据使用python向Redis批量导入数据二.导入redis某个库的数据注:以String类型为例 一.导出redis某个库的数据 import re...
    99+
    2024-04-02
  • oracle数据库中有哪些导入导出命令
    本篇文章为大家展示了oracle数据库中有哪些导入导出命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据导入导出imp/exp 功能:Oracle数...
    99+
    2024-04-02
  • PostgreSQL数据库导入和导出的方法
    今天小编给大家分享一下PostgreSQL数据库导入和导出的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Postgre...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作