Redis migrate数据迁移工具的使用教程
前言
在工作中可能会遇到单点Redis向Redis集群迁移数据的问题,但又不能老麻烦运维来做。为了方便研发自己迁移数据,我这里写了一个简单的Redis迁移工具,希望对有需要的人有用。
本工具支持:
- 单点Redis到单点Redis迁移
- 单点Redis到Redis集群迁移
- Redis集群到Redis集群迁移
- Redis集群到单点Redis迁移
该工具已经编译成了多平台命令,直接从Github下载二进制文件执行就好了。
项目地址:https://github.com/icowan/redis-tool
把代码拉下来之后直接执行命令make就可以编译多个平台可执行文件,需要依赖golang编译器。
- Windowsamd64:redis-tool-windows-amd64.exe
- MacOSamd64:redis-tool-darwin-amd64
- Linuxamd64:redis-tool-linux-amd64
- Linuxarm64:redis-tool-linux-arm64
查看使用方法:
$chmoda+xredis-tool-linux-amd64 $./redis-tool-linux-amd64-h
支持的数据类型
- string字符串
- hash散列列表
- list列表
- sorted-set有序集合
如何使用
下载好命令并授权之后执行./redis-tool-linux-amd64-h可以查看该工具所支持的所有功能:
$./redis-tool-darwin-amd64migrate-h 数据迁移命令 Usage: redis-toolmigrate[command] Examples: 支持命令: [hash,set,sorted-set,list] AvailableCommands: all迁移所有 hash哈希列表迁移 list列表迁移 setredisset迁移 sorted-set有序集合迁移 Flags: -h,--helphelpformigrate --source-authstring源密码 --source-databaseint源database --source-hostsstring源redis地址,多个ip用','隔开(default"127.0.0.1:6379") --source-prefixstring源redis前缀 --source-redis-cluster源redis是否是集群 --target-authstring目标密码 --target-databaseint目标database --target-hostsstring目标redis地址,多个ip用','隔开(default"127.0.0.1:6379") --target-prefixstring目标redis前缀 --target-redis-cluster目标redis是否是集群 Use"redis-toolmigrate[command]--help"formoreinformationaboutacommand.
参数说明:
- --source-auth:源redis密码,如果有的话就填
- --source-database:源database,默认是0
- --source-hosts:源redis地址,集群的多个ip用','隔开(default"127.0.0.1:6379")
- --source-prefix:源redis前缀,可不填
- --source-redis-cluster:源redis是否是集群,默认false
- --target-auth:迁移目标redis密码,如果有的话就填
- --target-database:迁移目标database,默认是0
- --target-hosts:迁移目标redis地址,集群的多个ip用','隔开(default"127.0.0.1:6379")
- --target-prefix:迁移目标redis前缀,可不填
- --target-redis-cluster:迁移目标redis是否是集群,默认false
迁移单个key的数据
下面就举两个例子吧,其他的都差不太多。
Hash类型
可以通过命令redis-toolmigratehash-h查看使用说明
$redis-toolmigratehashhelloworld\ --source-hosts127.0.0.1:6379\ --target-redis-clustertrue\ --target-hosts127.0.0.1:6379,127.0.0.1:7379\ --target-auth123456
有序集合
可以通过命令redis-toolmigratesorted-set-h查看使用说明
有序集合的数据量可能会比较大,所以这里按50000为单位进行了切割。我这里测试过迁移近17000000万条的数据,用时40多分钟。
$redis-toolmigratehashhelloworld\ --source-hosts127.0.0.1:6379\ --target-redis-clustertrue\ --target-hosts127.0.0.1:6379,127.0.0.1:7379\ --target-auth123456
迁移所有key的数据支持通配符过滤
可以通过命令redis-toolmigrateall-h查看使用说明
$redis-toolmigrateall"ipdetect:*"\ --source-hosts127.0.0.1:6379\ --target-redis-clustertrue\ --target-hosts127.0.0.1:6379,127.0.0.1:7379\ --target-auth123456
这个命令会编译匹配到的所有类型的key,再根据key的类型进行逐步迁移。
尾巴
使用golang写的一个比较简单的工具,主要用于在Redis没有持久化或多套Redis向一套Redis迁移的情况下使用。
总结
到此这篇关于Redismigrate数据迁移工具的文章就介绍到这了,更多相关Redismigrate数据迁移工具内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。