zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java学习:线程实现方式
    Java学习:异常的概念
    HDFS 其他命令---fsck
    Linux 常用命令
    Linux命令注释—HDFS运维
    大数据简介
    FusionInsight大数据开发---Oozie应用开发
    FusionInsight大数据开发---Flume应用开发
    FusionInsight大数据开发---Streaming应用开发
    FusionInsight大数据开发---Redis应用开发
  • 原文地址:https://www.cnblogs.com/EikiXu/p/9626311.html
Copyright © 2011-2022 走看看