博客
关于我
redis-migrate-tool使用详解
阅读量:703 次
发布时间:2019-03-21

本文共 2400 字,大约阅读时间需要 8 分钟。

Redis 数据迁移工具 (Redis-Migrate-Tool) 指南

工具概述

Redis-Migrate-Tool 是维品会开源的一款 Redis 数据迁移工具,基于 Redis 复制,支持快速、高效、稳定的大规模数据迁移。该工具兼容多种 Redis 集群模式,包括 Redis Cluster、Twemproxy 集群、RDB 文件及 AOF 文件,并提供关键功能如实时迁移、数据校验、过滤 等。


安装 Redis-Migrate-Tool

依赖安装

工具需依赖一些系统级和开发工具包。运行以下命令安装:

$ yum -y install automake libtool autoconf bzip2 git

安装步骤

进入工具目录,进行编译:

$ cd redis-migrate-tool$ autoreconf -fvi$ ./configure$ make$ src/redis-migrate-tool -h

注意事项

  • 内存要求:迁移过程中需确保源 Redis服务器足够内存支持生成 RDB 文件。若需大规模迁移,可在 rmt.conf 配置中设置 source_safe: false
  • 禁止命令:迁移工具不支持以下 Redis命令传播至目标集群,避免数据交叉:
    RENAME,RENAMENX,RPOPLPUSH,BRPOPLPUSH,FLUSHALL,FLUSHDB,BITOP,MOVE,GEORADIUS,GEORADIUSBYMEMBER,EVAL,EVALSHA,SCRIPT,PFMERGE

工具命令说明

常用命令

  • 迁移数据
    $ src/redis-migrate-tool -c rmt.conf -o log -d

    后台运行时需注意终止当前进程:

    $ netstat -tnulp | grep 8888$ kill -9 [端口号]
  • 数据校验
    $ src/redis-migrate-tool -c rmt.conf -o log -C redis_check

    可调整样本数量:

    $ src/redis-migrate-tool -c rmt.conf -o log -C "redis_check 200000"
  • 数据插入测试
    $ src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert"

    自定义插入数量及类型:

    $ src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert 30000"

    或指定特定键类型:

    $ src/redis-migrate-tool -c rmt.conf -o log -C "redis_testinsert string|set|list 10000"

工具选项说明

  • 信息显示:支持 redis-cli 连接工具,默认监听地址为 127.0.0.1:8888。
  • 启用后台运行:使用 -d 选项,需手动终止进程。
  • 日志配置:指定 -o log 导出日志文件,默认写入标准端口。

配置文件说明

配置文件结构

配置文件分为三个主要部分:

  • [source]:源集群配置,可选类型包括 singletwemproxyredis_clusterrdb fileaof file
  • [target]:目标集群配置,与源集群类型一致。
  • [common]:通用配置,包括监听地址、最大连接数、线程数、请求步数等。
  • 配置示例

    单个 Redis 到 Twemproxy 集群迁移

    [source]type: singleservers: - 127.0.0.1:6379[/source][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[/target][common]listen: 0.0.0.0:8888threads: 2step: 1mbuf_size: 1024source_safe: true

    RDB 文件到 Redis 集群迁移

    [source]type: rdb fileservers: - /data/redis/dump1.rdb - /data/redis/dump2.rdb[/source][target]type: redis clusterservers: - 127.0.0.1:7379[/target][common]listen: 0.0.0.0:8888step: 2mbuf_size: 512source_safe: false

    工具监听与管理

    命令操作

    • 状态查询

      $ redis-cli -h 127.0.0.1 -p 8888 info

      输出包括服务器版本、操作系统信息、进程 ID、连接状态等详细指标。

    • 退出命令

      $ redis-cli -h 127.0.0.1 -p 8888 shutdown 5

      参数说明:

      • seconds:等待时间,用于在退出前完成缓存数据迁移。
      • asap:立即退出,无需等待。

    总结

    • 兼容性:工具支持 Redis 4.0.x 及以上版本。
    • 多源迁移:单一或多个源集群无需影响对外服务。
    • 键值覆盖:建议避免多个 Redis 数据库使用相同的键前缀,以免覆盖数据。

    Redis-Migrate-Tool 提供了灵活的配置选项和强大的迁移功能,适用于各种 Redis 集群场景及大规模数据迁移任务。

    转载地址:http://ibzrz.baihongyu.com/

    你可能感兴趣的文章
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>
    mysql CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>