博客
关于我
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 两列互转
    查看>>
    MySQL 中开启二进制日志(Binlog)
    查看>>
    MySQL 中文问题
    查看>>
    MySQL 中日志的面试题总结
    查看>>
    mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
    查看>>
    MySQL 中的外键检查设置:SET FOREIGN_KEY_CHECKS = 1
    查看>>
    Mysql 中的日期时间字符串查询
    查看>>
    mysql 中索引的问题
    查看>>
    MySQL 中锁的面试题总结
    查看>>
    MySQL 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    MYSQL 主从同步文档的大坑
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 事务知识点与优化建议
    查看>>
    Mysql 优化 or
    查看>>