https://github.com/vipshop/redis-migrate-tool
一.安装redis-migrate-tool
a.下载redis-migrate-tool软件包 https://codeload.github.com/vipshop/redis-migrate-tool/zip/master
b.安装autoconf yum install autoconf automake libtool
  注意:autoconf需要2.64以上版本
  rpm -e --nodeps autoconf-2.63
  cd /usr/local/src
  wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
  tar -zxvf autoconf-2.68.tar.gz
  cd autoconf-2.68
  ./configure --prefix=/usr
  make && make install
c.解压安装
  cd /usr/local/src
  unzip redis-migrate-tool-master.zip
  cd redis-migrate-tool-master
  autoreconf -fvi
  ./configure --prefix=/usr/local/redis-migrate/
  make
  make install
  echo "export PATH=$PATH:/usr/local/redis-migrate/sbin">>/etc/profile
  source /etc/profile

二.测试
测试环境简介(redis版本3.0.5,redis3.2版本不能使用此迁移工具)
主机:192.168.196.128
实例:192.168.196.128:6001....192.168.196.128:6008(共8个实例)
安装目录及结构如下:(其中.sh结尾的文件为自定义的快捷脚本)
[root@vhost02 redis-cluster3.0]# pwd
/usr/local/redis-cluster3.0
[root@vhost02 redis-cluster3.0]# ll
total 112
drwxr-xr-x. 2 root root 4096 May 18 01:45 bin
drwxr-xr-x. 2 root root 4096 May 18 02:29 etc
-rwxr-xr-x. 1 root root 80 May 18 02:24 load_data.sh
drwxr-xr-x. 2 root root 4096 May 18 02:07 redis6001
drwxr-xr-x. 2 root root 4096 May 18 02:40 redis6002
drwxr-xr-x. 2 root root 4096 May 18 02:40 redis6003
drwxr-xr-x. 2 root root 4096 May 18 01:45 redis6004
drwxr-xr-x. 2 root root 4096 May 18 01:45 redis6005
drwxr-xr-x. 2 root root 4096 May 18 02:23 redis6006
drwxr-xr-x. 2 root root 4096 May 18 02:23 redis6007
drwxr-xr-x. 2 root root 4096 May 18 02:23 redis6008
-rwxr-xr-x. 1 root root 49186 May 18 02:26 redis-trib.rb
-rwxr-xr-x. 1 root root 12 May 18 01:56 shutdown-all.sh
-rwxr-xr-x. 1 root root 100 May 18 01:56 shutdown-cluster.sh
-rwxr-xr-x. 1 root root 660 May 18 02:03 startup-all.sh
-rwxr-xr-x. 1 root root 99 May 18 02:00 startup-cluster.sh

1.有数据集群到无数据单点
a.搭建集群(192.168.196.128:6001 192.168.196.128:6002 192.168.196.128:6003此处略去集群搭建过程)
b.使用脚本往集群中添加数据
  more load_data.sh
  #!/bin/bash
  for((i=1;i<=20000;i++))
  do
  redis-cli -c -p 6001 set k$i v$i
  done
c.检查下集群中的数据
  redis-cli -c -p 6003
  127.0.0.1:6001> info
  ...
  # Keyspace
  db0:keys=6656,expires=0,avg_ttl=0
d.启动单实例192.168.196.128:6004,并查看数据
  [root@vhost02 redis-cluster]# ./startup-all.sh
  please enter the number that you want to startup[1|2|3|4..|all]4

  startup redis04 ...
  redis04 is ok

  redis-cli -p 6004
  127.0.0.1:6004> info
  ...
  # Keyspace
e.修改迁移配置文件
  mkdir /usr/local/redis-migrate/etc
  vi c-s-rmt.conf
  [source]
  type: redis cluster
  servers:
  - 192.168.196.128:6001

  [target]
  type: single
  servers:
  - 192.168.196.128:6004

  [common]
  threads: 1
  step: 5
  mbuf_size: 512
  source_safe: false
f.迁移
  redis-migrate-tool -c /usr/local/redis-migrate/etc/c-s-rmt.conf -o c-s.log -d
g.检查数据
  redis-cli -p 6004
  # Keyspace
  db0:keys=20000,expires=0,avg_ttl=0
h.集群写,单实例是否同步
  往集群实例6001中写添加key kx001
  添加成功后,查看6004中key总理,并查看kx001
  # Keyspace
  db0:keys=20001,expires=0,avg_ttl=0
  127.0.0.1:6004> get kx001
  "x001"
  同理删除key值
结论:同步 redis-migrate-tool进程一直在后台运行,断掉进程后就不再同步。如果后面修改source上的数据target上没有也不会报错,动作仍旧会同步。

2.单点到集群
  vi s-c-rmt.conf
  [source]
  type: single
  servers:
  - 192.168.196.128:6004

  [target]
  type: redis cluster
  servers:
  - 192.168.196.128:6001

  [common]
  threads: 1
  step: 5
  mbuf_size: 512
  source_safe: false
结论:同上

3.单点到单点
  more s-s-rmt.conf
  [source]
  type: single
  servers:
  - 192.168.196.128:6004

  [target]
  type: single
  servers:
  - 192.168.196.128:6005

  [common]
  threads: 1
  step: 5
  mbuf_size: 512
  source_safe: false
结论:同上
4.三节点集群到三节点集群
  more c-c-rmt.conf
  [source]
  type: redis cluster
  servers:
  - 192.168.196.128:6001

  [target]
  type: redis cluster
  servers:
  - 192.168.196.128:6006

  [common]
  threads: 1
  step: 5
  mbuf_size: 512
  source_safe: false
结论:同上

作者:jane.hoo
出处:jane.hoo的博客 http://www.cnblogs.com/janehoo/
[人生不设限,生命不息,折腾不止]
您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。

redis迁移工具-redis-migrate-tool使用测试的更多相关文章

  1. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

  2. redis linux 安装及jedis连接测试

    一.安装配置 1:下载redis下载地址 http://code.google.com/p/redis/downloads/list推荐下载redis-1.2.6.tar.gz,之前这个版本同事已经有 ...

  3. Redis 集群方案- 主从切换测试

    大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满且不释放.印象中,Redis 2.4.8以下的版本由于设计上的主从库同步问题,就会 ...

  4. Redis、Redis+sentinel安装(Ubuntu 14.04下Redis安装及简单测试)

    Ubuntu下Redis安装两种安装方式: 1.apt-get方式 步骤: 以root权限登录,切换到/usr目录下. 接下来输入命令,apt-get install redis-server,如图: ...

  5. redis的线程模型 与 压力测试

    当客户端与ServerSocket产生连接时,会产生一个 AE_REABLE / AE_WRITABL 事件, 多个Socket可能并发产生不同的事件,IO多路复用程序会监听这些Socket,按照顺序 ...

  6. 【Azure Redis 缓存 Azure Cache For Redis】使用Redis自带redis-benchmark.exe命令测试Azure Redis的性能

    问题描述 关于Azure Redis的性能问题,在官方文档中,可以查看到不同层级Redis的最大连接数,每秒处理请求的性能. 基本缓存和标准缓存 C0 (250 MB) 缓存 - 最多支持 256 个 ...

  7. 【Redis】Redis基础 - Redis安装启动测试

    Redis基本 - 安装 文章目录 Redis基本 - 安装 Linux下安装Redis Docker 方式 Github 源码编译方式 直接安装方式 Windows下Redis安装 记录 - Red ...

  8. windows下安装redis、celery,并启动测试

    Windows 环境下基于 Redis 的 Celery 任务调度模块的实现 搭建环境: Windows-x64 10 Celery 3.1.23 Celery-with-redis 3.0 Redi ...

  9. 高性能kv存储之Redis、Redis Cluster、Pika:如何应对4000亿的日访问量?

    一.背景介绍 随着360公司业务发展,业务使用kv存储的需求越来越大.为了应对kv存储需求爆发式的增长和多使用场景的需求,360web平台部致力于打造一个全方位,适用于多场景需求的kv解决方案.目前, ...

  10. 【Redis】Redis学习(六) Redis 基本运维

    Redis的单机搭建,主从搭建,Sentinal搭建,以及Redis集群搭建的步骤参照前面的文章.现在来说一下Redis的基本运维,毕竟如果一切正常是最好的,但是当出现问题不能使用的时候,准确定位问题 ...

随机推荐

  1. iOS支持Https

    http://oncenote.com/2014/10/21/Security-1-HTTPS/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_s ...

  2. a标签中href的触发

    采用.trigger('click')没有效果,是用的$('xx')[0].click()来触发的.不知道为什么trigger不行,望指导.

  3. error-2015-9-9

    类型的建键部分无效,该键的所有部分均不可为null 映射从第行开始的片段时有问题 表的键具有潜在运行时冲突 列映射到概念端的属性 但是它们未形成entitySet的键属性 报错: 未能加载文件或程序集 ...

  4. 转载:Solr的自动完成实现方式(第一部分:facet方式)

    转自:http://www.cnblogs.com/ibook360/archive/2011/11/30/2269059.html 大部分人已经见过自动完成(autocomplete)的功能了(见下 ...

  5. 关于NIO

    操作系统的IO控制 在整个IO控制方式的发展过程中,始终贯穿着这样一条宗旨:即尽量减少主机对IO控制的干预,把主机从繁杂的IO控制事务中解脱出来,以便更多地去完成数据处理任务.为了缓和高速CPU和IO ...

  6. extern关键字

    1.extern "C" void func(){...} extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其 ...

  7. Win10切换中英输入法问题

    用此方法解决后的效果: Win10系统只剩下"美式键盘"和"搜狗拼音"两种输入法,且默认为美式键盘. 按Ctrl+Shift切换到搜狗拼音,输入完成后,再按Ct ...

  8. openvpn安装

    1,wget http://swupdate.openvpn.org/as/openvpn-as-2.0.10-CentOS7.x86_64.rpm 2,passwd openvpn

  9. java的Map及Map.Entry解析

    Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...

  10. NGUI 新手引导

    现在我们的游戏已到了开发后期,这个时候需要做新手引导这一块(恶心的新手引导,真想说游戏行业究竟哪个2B最先想出来要引导的???代码搞的到处都是,改了一次又改!) 吐槽过后进入正题:主要还是UI相关的操 ...