Redis-Migrate-Tool 使用詳解


注意:目前不支持4.0.X及以上的redis使用

Redis 集群遷移工具,基於redis復制,快速,穩定。 
github鏈接:https://github.com/vipshop/redis-migrate-tool

特點:

  • •快速。
  • •多線程。
  • •基於redis復制。
  • •實時遷移。
  • •遷移過程中,源集群不影響對外提供服務。
  • •異構遷移。
  • •支持Twemproxy集群,redis cluster集群,rdb文件 和 aof文件。
  • •過濾功能。
  • •當目標集群是Twemproxy,數據會跳過Twemproxy直接導入到后端的redis。
  • •遷移狀態顯示。
  • •完善的數據抽樣校驗。

遷移工具的來源可以是:單獨的redis實例,twemproxy集群,redis cluster,rdb文件,aof文件。 
遷移工具的目標可以是:單獨的redis實例,twemproxy集群,redis cluster,rdb文件。

#安裝依賴:

yum install autoconf automake libtool bzip2

#linux機器上下載包

git clone https://github.com/vipshop/redis-migrate-tool

 

軟件編譯安裝:

$ cd redis-migrate-tool

$ autoreconf -fvi

$ ./configure

$ make

$ src/redis-migrate-tool -h

 

軟件運行:

src/redis-migrate-tool -c rmt.conf -o log -d

配置文件示例:從redis cluster集群遷移數據到twemproxy集群

[source]type: redis clusterservers:- 127.0.0.1:6379

[target]type: twemproxyhash: fnv1a_64hash_tag: "{}"distribution: ketamaservers:- 127.0.0.1:6380:1 server1- 127.0.0.1:6381:1 server2- 127.0.0.1:6382:1 server3- 127.0.0.1:6383:1 server4

[common]listen: 0.0.0.0:34345threads: 8step: 1mbuf_size: 512source_safe: true

配置文件示例:從redis cluster集群遷移數據到另外一個cluster集群

[source]type: redis clusterservers:- 127.0.0.1:8379

[target]type: redis clusterservers:- 127.0.0.1:7379

[common]listen: 0.0.0.0:8888

配置文件示例:從rdb文件恢復數據到redis cluster集群[source]

type: rdb fileservers:

 - /data/redis/dump1.rdb

 - /data/redis/dump2.rdb

 - /data/redis/dump3.rdb

 

[target]type: redis clusterservers:

 - 127.0.0.1:7379

 

[common]listen: 0.0.0.0:8888

配置文件示例:從單機遷移數據到另外一個單機

[source]
type: single
servers : 
-192.168.0.2:6379
redis_auth:redis

[target]
type: single
servers:
-192.168.0.5:6379

[common]
listen: 0.0.0.0:9999

狀態查看:通過redis-cli連接redis-migrate-tool監控的端口,運行info命令

$redis-cli -h 127.0.0.1 -p 8888127.0.0.1:8888> info# Serverversion:0.1.0os:Linux 2.6.32-573.12.1.el6.x86_64 x86_64multiplexing_api:epollgcc_version:4.4.7process_id:9199tcp_port:8888uptime_in_seconds:1662uptime_in_days:0config_file:/ect/rmt.conf

# Clientsconnected_clients:1max_clients_limit:100total_connections_received:3

# Memorymem_allocator:jemalloc-4.0.4

# Groupsource_nodes_count:32target_nodes_count:48

# Statsall_rdb_received:1all_rdb_parsed:1rdb_received_count:32rdb_parsed_count:32total_msgs_recv:7753587total_msgs_sent:7753587total_net_input_bytes:234636318total_net_output_bytes:255384129total_net_input_bytes_human:223.77Mtotal_net_output_bytes_human:243.55Mtotal_mbufs_inqueue:0total_msgs_outqueue:0127.0.0.1:8888>

查看log:

[root@redis04 redis-migrate-tool-master]# tail -f log
[2018-09-11 10:20:30.828] rmt_core.c:2551 migrate job is running...
[2018-09-11 10:20:30.828] rmt_redis.c:1706 Start connecting to MASTER[192.168.0.2:6379].
[2018-09-11 10:20:30.828] rmt_redis.c:1740 Master[192.168.0.2:6379] replied to PING, replication can continue...
[2018-09-11 10:20:30.829] rmt_redis.c:1051 Partial resynchronization for MASTER[192.168.0.2:6379] not possible (no cached master).
[2018-09-11 10:20:30.829] rmt_redis.c:1110 Full resync from MASTER[192.168.0.2:6379]: 05f9812b79e1e3e1ca95487d7acd360df644ad0a:18683803
[2018-09-11 10:20:31.120] rmt_redis.c:1517 MASTER <-> SLAVE sync: receiving 7844908 bytes from master[192.168.0.2:6379]
[2018-09-11 10:20:31.131] rmt_redis.c:1623 MASTER <-> SLAVE sync: RDB data for node[192.168.0.2:6379] is received, used: 0 s
[2018-09-11 10:20:31.131] rmt_redis.c:1643 rdb file node192.168.0.2:6379-1536632430829999-11046.rdb write complete
[2018-09-11 10:20:31.256] rmt_redis.c:6601 Rdb file for node[192.168.0.2:6379] parsed finished, use: 0 s.
[2018-09-11 10:20:31.258] rmt_redis.c:6709 All nodes' rdb file parsed finished for this write thread(0).

 

數據校驗:

[root@redis04 redis-migrate-tool-master]# src/redis-migrate-tool -c rmt.conf -o 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.007s

 參考來源:https://www.cnblogs.com/luckcs/articles/6477261.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM