环境说明:
202.102.221.11 redis源实例
202.102.221.12 redis目标实例
202.102.221.13 任意linux系统

一、redis-dump方式

  1.安装redis-dump工具

[root@202.102.221.13 ~]# yum install ruby rubygems ruby-devel -y
# 更改gem源
[root@202.102.221.13 ~]# gem sources -a http://ruby.taobao.org
Error fetching http://ruby.taobao.org:
bad response Not Found (http://ruby.taobao.org/specs.4.8.gz)
  访问http://ruby.taobao.org,公告通知镜像维护站点已迁往Ruby China镜像 #gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
[root@202.102.221.13 ~]# gem sources --add http://gems.ruby-china.org/ --remove http://rubygems.org/
http://gems.ruby-china.org/ added to sources
source http://rubygems.org/ not present in cache
[root@202.102.221.13 ~]# gem sources -l
*** CURRENT SOURCES *** http://gems.ruby-china.org/
[root@202.102.221.13 ~]# gem install redis-dump -V

  2.redis-dump导出

[root@202.102.221.13 ~]# redis-dump -u :password@202.102.221.11: > 202.102.221.11.json

  3.redis-load导入

[root@202.102.221.13 ~]# cat 202.102.221.11.json | redis-load -u :password@202.102.221.12:

二、aof导入方式

  1.源实例生成aof数据

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

  2.目标实例导入aof数据

# 假设appendonly.aof就在当前路径下
[root@202.102.221.11 ~]# redis-cli -h 202.102.221.12 -a password --pipe < appendonly.aof
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: , replies:
# 源实例关闭aof功能
[root@202.102.221.11 ~]# redis-cli -h 202.102.221.11 -a password config set appendonly no
OK

三、rdb文件迁移方式

(1)关闭要迁移到的服务器的redis的aof日志功能(我的要迁移到的是本机的redis6380.conf)

vim redis6380.conf,将appendonly yes修改为appendonly no

(2)我们先看一下当前redis的数据,并将数据用save命令固化到rdb文件中,我的rdb文件为/var/rdb/dump6379.rdb

(3)杀掉当前redis的进程,否则下一步的复制rdb文件,rdb处于打开的状态,复制的文件,会占用同样的句柄

(4)复制当前redis的rdb文件,名字为你要迁移的redis的rdb文件名(我的要迁移的redis的文件名为 /var/rdb/dump6380.rdb),记住,一定要杀掉当前redis的进程,还有关闭要迁移的服务器的aof功能(如果不关闭aof,默认用aof文件来恢复数据)

(5)启动6380的redis,我们会发现,6380多出了name的数据,这个数据,就是6379固化到rdb的数据

以上就是在不同的redis之间进行rdb的数据迁移,思路就是,复制rdb文件,然后让要迁移的redis加载这个rdb文件就ok了

四、源实例db0迁移至目标实例db1

[root@202.102.221.11 ~]# cat redis_mv.sh
#!/bin/bash
redis-cli -h 202.102.221.11 -p -a password -n keys "*" | while read key
do
redis-cli -h 202.102.221.11 -p -a password -n --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 202.102.221.12 -p -a password -n -x restore $key
echo "migrate key $key"
done

redis的几种数据导入导出方式【转】的更多相关文章

  1. HIVE几种数据导入方式

    HIVE几种数据导入方式 今天的话题是总结Hive的几种常见的数据导入方式,我总结为四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询 ...

  2. SQL Server数据导入导出的几种方法

    在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,结合我在做项目时的经历做一下汇总: 1. SQL Server导入导出向导,这种方式是最方便的. 导入向导 ...

  3. 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

    在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...

  4. SQL SERVER 与ACCESS、EXCEL的数据导入导出转换

    * 说明:复制表(只复制结构,源表名:a 新表名:b)      select * into b from a where 1<>1 * 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) ...

  5. 通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出

    目录 目录 1.什么是 Sqoop? 2.下载应用程序及配置环境变量 2.1.下载 Sqoop 1.4.7 2.2.设置环境变量 2.3.设置安装所需环境 3.安装 Sqoop 1.4.7 3.1.修 ...

  6. python 全栈开发,Day126(创业故事,软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON)

    作业讲解 下载代码: HBuilder APP和flask后端登录 链接:https://pan.baidu.com/s/1eBwd1sVXTNLdHwKRM2-ytg 密码:4pcw 如何打开APP ...

  7. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

  8. mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...

  9. oracle数据库数据导入导出步骤(入门)

    oracle数据库数据导入导出步骤(入门) 说明: 1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL 2.如果熟悉命令,建议用exp/imp ...

随机推荐

  1. [Swift]LeetCode101. 对称二叉树 | Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  2. [Swift]LeetCode229. 求众数 II | Majority Element II

    Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. Note: The a ...

  3. [Swift]LeetCode501. 二叉搜索树中的众数 | Find Mode in Binary Search Tree

    Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred ...

  4. server.properties 文件详解

    [转载]:server.properties 文件详解 # 每一个Broker在集群中的唯标识.即使Broker的IP地址发生了变化,broker.id只要没变,则不会影响consumers的消息情况 ...

  5. 参数验证 @Validated 和 @Valid 的区别

    来源:blog.csdn.net/qq_27680317/article/details/79970590 整编:Java技术栈(公众号ID:javastack) Spring Validation验 ...

  6. Go使用Makefile构建

    ​ 我们平常很多时候都是直接在命令行输入go build进行编译的: go build . 或者测试使用go run运行项目 go run main.go 我看有很多大型开源项目都是如下方式: mak ...

  7. Java并发编程-volatile可见性的介绍

    要学习好Java的多线程,就一定得对volatile关键字的作用机制了熟于胸.最近博主看了大量关于volatile的相关博客,对其有了一点初步的理解和认识,下面通过自己的话叙述整理一遍. 有什么用? ...

  8. 客户端通过Feign发起请求 服务端通过request取 json对象

    @RestController @RequestMapping(value = "test") public class TestServer { @RequestMapping( ...

  9. 9.Django form组件

    Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 创建Form类时,主要涉及到 [ ...

  10. 带着新人学springboot的应用05(springboot+RabbitMQ 上)

    这次就来说说RabbitMQ,这个应该不陌生了,随便一查就知道这个是用来做消息队列的.(注意:这一节很多都是概念的东西,需要操作的比较少) 至于AMQP协议(Advanced Message Queu ...