前篇介绍的redis replication方法,操作步骤多,而且容易出错。在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool等工具。实验演示使用redis-migrate-tool,将redis cluster 迁移到一个单实例redis中。
1.redis-migrate-tool的安装
需要注意的是安装redis-migrate-tool依赖automake, libtool, autoconf and bzip2这些包
2..运行环境
源节点:10.86.30.37:36379/10.86.30.37:36380/10.86.30.37:36381
[root@10_86_30_37_10.86.30.37 redis-migrate-tool]# redis-cli -c -p 36379 -h 10.86.30.37 cluster nodes
7fab85269fe72d68414ffd15a54605d45f280aff 10.86.30.37:36381 master - 0 1477555329981 7 connected 10001-16383
e0c45fe484e55967c968814076b0a5f67f4f6821 10.86.30.37:36380 master - 0 1477555330984 8 connected 5001-10000
ba3d6a50ef6bdf6212c0360baec97f29f3b25385 10.86.30.37:36379 myself,master - 0 0 6 connected 0-5000
目标节点:10.86.30.37:6389
3.迁移过程
  • redis cluster向redis单实例迁移配置文件
[source]
type: redis cluster
servers:
- 10.86.30.37: [target]
type: single
servers:
- 10.86.30.37: [common]
listen: 0.0.0.0:
  • 执行命令进行同步
/usr/local/redis-migrate-tool/src/redis-migrate-tool -c mgr.conf -d
  • 查看同步后的文件
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p  keys \*
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p keys \*
) ""
) ""
) ""
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p keys \*
) ""
) ""
) ""
) ""
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p keys \*
) ""
) ""
所有节点数据同步到了但实例节点中,插入数据测试
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p  -c
10.86.30.37:> set
-> Redirected to slot [] located at 10.86.30.37:
OK
10.86.30.37:> set
-> Redirected to slot [] located at 10.86.30.37:
OK
10.86.30.37:> set
-> Redirected to slot [] located at 10.86.30.37:
OK
[root@10_86_30_37_10.86.30. redis]# redis-cli -h 10.86.30.37 -p keys \*
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
) ""
可以看到新增数据也同步到了redis单实例节点中
4.利用redis-migrate-tool的工具进行更全面的验证
  • 利用redis-migrate-tool提供的命令进行一致性校验:
[root@10_86_30_37_10.86.30. redis]# /usr/local/redis-migrate-tool/src/redis-migrate-tool -c mgr.conf log -C redis_check
Check job is running... Checked keys:
Inconsistent value keys:
Inconsistent expire keys :
Other check error keys:
Checked OK keys: All keys checked OK!
Check job finished, used .047s
  • 利用redis-migrate-tool提供的命令进行插入校验:
[root@10_86_30_37_10.86.30. redis]# /usr/local/redis-migrate-tool/src/redis-migrate-tool -c mgr.conf log -C redis_testinsert
Test insert job is running... Insert string keys:
Insert list keys :
Insert set keys :
Insert zset keys :
Insert hash keys :
Insert total keys : Correct inserted keys:
Test insert job finished, used .417s
需要注意的是,插入校验生成的数据并不会清除,如果只是为了测试功能,那么可以减少插入的key。

redis集群同步迁移方法(二):通过redis-migrate-tool实现的更多相关文章

  1. redis集群同步迁移方法(一):通过redis replication实现

           讲到redis的迁移,一般会使用rdb或者aof在主库做自动重载到目标库方法.但该方法有个问题就是无法保证源节点数据和目标节点数据保持一致,一般线上环境也不允许源库停机,所以要在迁移过程 ...

  2. Spring集成Redis集群(含spring集成redis代码)

    代码地址如下:http://www.demodashi.com/demo/11458.html 一.准备工作 安装 Redis 集群 安装参考: http://blog.csdn.net/zk6738 ...

  3. Redis集群迁移

    1:开发中断程序,登录各个主节点查看key信息 INFO # Keyspace db0:keys,expires,avg_ttl # Keyspace db0:keys,expires,avg_ttl ...

  4. Redis集群管理(二)

    1.进入集群客户端 任意选一个redis节点,进入redis 所在目录 cd /redis 所在目录/src/ ./redis-cli -h 本地节点的ip -p redis的端口号 -a 密码 [r ...

  5. Redis学习之路(二)Redis集群搭建

    一.Redis集群搭建说明 基于三台虚拟机部署9个节点,一台虚拟机三个节点,创建出4个master.4个slave的Redis集群. Redis 集群搭建规划,由于集群至少需要6个节点(3主3从模式) ...

  6. Redis集群同步问题

    之前被面试官问到:Redis集群中主从数据同步是从库异步读取主库,那么Redis集群其他主与主之间的数据是怎么共享的呢?或者说是怎么同步的? emmmm……当时我就懵逼了,这不是考试范围啊卧槽~只能老 ...

  7. springBoot2.*使用redis集群/单机方法

    在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce. 此处springboot2.x,所以使用的是Lettuce.关于jedis跟 ...

  8. Redis 学习笔记(十二)Redis 复制功能详解 ----- (error) READONLY You can't write against a read only slave

    Redis 复制(Replication)1. 复制介绍分布式数据库为了获取更大的存储容量和更高的并发访问量,会将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上.Redis为了解决 ...

  9. <正则吃饺子> :关于redis集群的搭建、集群测试、搭建中遇到的问题总结

    项目中使用了redis ,对于其基本的使用,相对简单些,根据项目中已经提供的工具就可以实现基本的功能,但是只是这样的话,对于redis还是太肤浅,甚至刚开始时候,集群.多节点.主从是什么,他们之间是什 ...

随机推荐

  1. 第二节:模型(Models)和管理后台(Admin site)

    本节内容我们将配置数据库,创建第一个model并且快速了解Django自动生成的管理后台(admin site) 目录 数据库配置 创建模型 激活模型 使用Django API 介绍Django管理后 ...

  2. Beta版本冲刺——day5

    No Bug 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 站立式会议 今日计划表 人员 工作 ...

  3. c#变量缺少using引用,如何快速加上using,加Using的快捷键[bubuko.com]

    在vs的“工具”->“选项”中,左侧树形菜单,“环境”下的“键盘”中设置快捷键. 在“显示命令包含”输入框内输入“显示智能标记”,找到“视图.显示智能标记”,可以看到该命令的快捷键已经分配了2个 ...

  4. 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控

    参考上篇文章: <[SFTP]使用Jsch实现Sftp文件下载-支持断点续传和进程监控>:http://www.cnblogs.com/ssslinppp/p/6248763.html  ...

  5. VS2012 InstallShield2013LimitedEdition激活

    VS2012 InstallShield2013LimitedEdition激活 在实际开发工作中由于升级操作系统后,不知何种原因,导致 InstallShield2013LimitedEdition ...

  6. R语言-数据结构

    1.向量 向量是用来存储数值型.字符型或逻辑性数据的一维数组,用函数c()创建向量 a <- c(1,2,5,6,4) b <- c("one","two&q ...

  7. Eclipse调试时附加匹配版本的JAR包源码:Edit Source Loopup

  8. vue.js 2.0开发(3)

    组件化 Vue.component('todo-items',{ }); 定义组件,首先是标签的名字todo-items,然后里面还要配置一些选项,首先是我们的模板template,里面需要填入的内容 ...

  9. NLP情感分析监督学习样本打标

    1). 情感打标 a). 全句 单句 标签 好吃是好吃 pos 真材实料 pos 不过感觉一人份的量就有点小贵 neg 点的是肥牛米线 neu b). 全文本 文本 标签 分量足,味道不错,味道也不错 ...

  10. GDB 调试遇到??的问题

    今天总算解决了一个大的bug,爽! 我的程序crash,有了coredump文件,在Linux PC上用arm-linux-gdb debug it. The result is: #0  0x402 ...