redis集群同步迁移方法(二):通过redis-migrate-tool实现
2016-10-27 17:58
609 查看
前篇介绍的redis replication方法,操作步骤多,而且容易出错。在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool等工具。实验演示使用redis-migrate-tool,将redis cluster 迁移到一个单实例redis中。
1.redis-migrate-tool的安装
见https://github.com/vipshop/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单实例迁移配置文件
执行命令进行同步
查看同步后的文件
所有节点数据同步到了但实例节点中,插入数据测试
可以看到新增数据也同步到了redis单实例节点中
4.利用redis-migrate-tool的工具进行更全面的验证
利用redis-migrate-tool提供的命令进行一致性校验:
利用redis-migrate-tool提供的命令进行插入校验:
需要注意的是,插入校验生成的数据并不会清除,如果只是为了测试功能,那么可以减少插入的key。
1.redis-migrate-tool的安装
见https://github.com/vipshop/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:36379 [target] type: single servers: - 10.86.30.37:6389 [common] listen: 0.0.0.0:8888
执行命令进行同步
/usr/local/redis-migrate-tool/src/redis-migrate-tool -c mgr.conf -d
查看同步后的文件
[root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 6389 keys \* 1) "5" 2) "2" 3) "1" 4) "10" 5) "12" 6) "3" 7) "4" 8) "13" 9) "11" [root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 36379 keys \* 1) "10" 2) "11" 3) "3" [root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 36380 keys \* 1) "12" 2) "1" 3) "2" 4) "5" [root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 36381 keys \* 1) "13" 2) "4"
所有节点数据同步到了但实例节点中,插入数据测试
[root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 36379 -c 10.86.30.37:36379> set 30 30 -> Redirected to slot [9877] located at 10.86.30.37:36380 OK 10.86.30.37:36380> set 31 31 -> Redirected to slot [14004] located at 10.86.30.37:36381 OK 10.86.30.37:36381> set 32 32 -> Redirected to slot [1751] located at 10.86.30.37:36379 OK [root@10_86_30_37_10.86.30.37 redis]# redis-cli -h 10.86.30.37 -p 6389 keys \* 1) "5" 2) "30" 3) "31" 4) "2" 5) "1" 6) "10" 7) "21" 8) "12" 9) "3" 10) "4" 11) "13" 12) "32" 13) "11"
可以看到新增数据也同步到了redis单实例节点中
4.利用redis-migrate-tool的工具进行更全面的验证
利用redis-migrate-tool提供的命令进行一致性校验:
[root@10_86_30_37_10.86.30.37 redis]# /usr/local/redis-migrate-tool/src/redis-migrate-tool -c mgr.conf log -C redis_check Check job is running... Checked keys: 1000 Inconsistent value keys: 0 Inconsistent expire keys : 0 Other check error keys: 0 Checked OK keys: 1000 All keys checked OK! Check job finished, used 0.047s
利用redis-migrate-tool提供的命令进行插入校验:
[root@10_86_30_37_10.86.30.37 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: 200 Insert list keys : 200 Insert set keys : 200 Insert zset keys : 200 Insert hash keys : 200 Insert total keys : 1000 Correct inserted keys: 1000 Test insert job finished, used 0.417s
需要注意的是,插入校验生成的数据并不会清除,如果只是为了测试功能,那么可以减少插入的key。
相关文章推荐
- redis集群同步迁移方法(一):通过redis replication实现
- [置顶] Spring Boot系列十二 通过redis实现Tomcat集群的Session同步及从源码分析其原理
- nginx+tomcat+redis集群实现负载均衡和session同步的步骤和问题处理方法
- 通过Gearman实现MySQL到Redis的数据同步(异步复制)
- 通过Gearman实现MySQL到Redis的数据同步
- Apache shiro集群实现 (八) web集群时session同步的3种方法
- 通过Shell和Redis来实现集群业务中日志的实时收集分析
- 通过Gearman实现MySQL到Redis的数据同步
- redis迁移工具-redis-migrate-tool使用测试
- 通过shell和redis来实现集群业务中日志的实时收集分析 推荐
- 通过Gearman实现MySQL到Redis的数据同步,继而实现读写分离
- Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现
- 通过 Redis 实现 RPC 远程方法调用(支持多种编程语言)
- 通过Gearman实现MySQL到Redis的数据同步
- [linux]通过ssh远程设定各服务器时间,从而实现集群时间同步
- 通过Gearman实现MySQL到Redis的数据同步
- 通过 Redis 实现 RPC 远程方法调用(支持多种编程语言)
- php实现redis数据库指定库号迁移的方法
- Apache shiro集群实现 (八) web集群时session同步的3种方法
- 通过Gearman实现MySQL到Redis的数据同步