Redis集群迁移工具推荐:redis-migrate-tool

  • A+
所属分类:Linux

Redis集群迁移工具,基于redis复制,快速,稳定。

Redis集群迁移工具推荐:redis-migrate-tool

特点

  • 快速
  • 多线程
  • 基于redis复制
  • 实时迁移
  • 迁移过程中,源集群不影响对外提供服务
  • 异构迁移
  • 支持Twemproxy集群,redis cluster集群,rdb文件 和 aof文件
  • 过滤功能
  • 当目标集群是Twemproxy,数据会跳过Twemproxy直接导入到后端的redis
  • 迁移状态显示
  • 完善的数据抽样校验

迁移工具的来源可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件,aof文件。

迁移工具的目标可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件。

版本说明

https://github.com/vipshop/redis-migrate-tool #仅支持redis3及以下版本

https://github.com/tanruixing88/redis-migrate-tool #基于上述版本修改,支持redis4及以上版本

依赖

  1. yum -y install automake libtool autoconf bzip2

安装

  1. git clone https://github.com/tanruixing88/redis-migrate-tool.git
  2. redis-migrate-tool
  3. autoreconf -fvi
  4. ./configure
  5. make
  6. cp src/redis-migrate-tool /usr/local/bin/redis-migrate-tool

配置文件rmt.conf

配置文件示例:从redis cluster集群迁移数据到twemproxy集群

  1. [source]
  2. type: redis cluster
  3. servers:
  4.  - 127.0.0.1:6379
  5.  - 127.0.0.1:6380
  6.  - 127.0.0.1:6381
  7.  - 127.0.0.1:6382
  8. [target]
  9. type: twemproxy
  10. hash: fnv1a_64
  11. hash_tag: "{}"
  12. distribution: ketama
  13. servers:
  14.  - 127.0.0.1:6380:1 server1
  15.  - 127.0.0.1:6381:1 server2
  16.  - 127.0.0.1:6382:1 server3
  17.  - 127.0.0.1:6383:1 server4
  18. [common]
  19. listen: 0.0.0.0:8888
  20. threads: 2
  21. step: 1
  22. mbuf_size: 1024
  23. source_safe: true

配置文件示例:从redis cluster集群迁移数据到另外一个cluster集群

  1. [source]
  2. type: redis cluster
  3. servers:
  4.  - 127.0.0.1:8379
  5. [target]
  6. type: redis cluster
  7. servers:
  8.  - 127.0.0.1:7379
  9. [common]
  10. listen: 0.0.0.0:8888

配置文件示例:从rdb文件恢复数据到redis cluster集群

  1. [source]
  2. type: rdb file
  3. servers:
  4.  - /data/redis/dump1.rdb
  5.  - /data/redis/dump2.rdb
  6.  - /data/redis/dump3.rdb
  7. [target]
  8. type: redis cluster
  9. servers:
  10.  - 127.0.0.1:7379
  11. [common]
  12. listen: 0.0.0.0:8888

运行

  1. /usr/local/bin/redis-migrate-tool -c rmt.conf -o log -d

状态

通过redis-cli连接redis-migrate-tool监控的端口,运行info命令

  1. redis-cli -h 127.0.0.1 -p 8888
  2. 127.0.0.1:8888> info
  3. # Server
  4. version:0.1.0
  5. os:Linux 2.6.32-573.12.1.el6.x86_64 x86_64
  6. multiplexing_api:epoll
  7. gcc_version:4.4.7
  8. process_id:9199
  9. tcp_port:8888
  10. uptime_in_seconds:1662
  11. uptime_in_days:0
  12. config_file:/ect/rmt.conf
  13. # Clients
  14. connected_clients:1
  15. max_clients_limit:100
  16. total_connections_received:3
  17. # Memory
  18. mem_allocator:jemalloc-4.0.4
  19. # Group
  20. source_nodes_count:32
  21. target_nodes_count:48
  22. # Stats
  23. all_rdb_received:1
  24. all_rdb_parsed:1
  25. all_aof_loaded:0
  26. rdb_received_count:32
  27. rdb_parsed_count:32
  28. aof_loaded_count:0
  29. total_msgs_recv:7753587
  30. total_msgs_sent:7753587
  31. total_net_input_bytes:234636318
  32. total_net_output_bytes:255384129
  33. total_net_input_bytes_human:223.77M
  34. total_net_output_bytes_human:243.55M
  35. total_mbufs_inqueue:0
  36. total_msgs_outqueue:0
  37. 127.0.0.1:8888>

数据校验

  1. /usr/local/bin/redis-migrate-tool -c rmt.conf -o log -C redis_check
  2. Check job is running...
  3. Checked keys: 1000
  4. Inconsistent value keys: 0
  5. Inconsistent expire keys : 0
  6. Other check error keys: 0
  7. Checked OK keys: 1000
  8. All keys checked OK!
  9. Check job finished, used 1.041s

Thu Feb 28 15:21:35 CST 2019

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: