前言
在工作中可能会遇到单点Redis向Redis集群迁移数据的问题,但又不能老麻烦运维来做。为了方便研发自己迁移数据,我这里写了一个简单的Redis迁移工具,希望对有需要的人有用。
本工具支持:
- 单点Redis到单点Redis迁移
- 单点Redis到Redis集群迁移
- Redis集群到Redis集群迁移
- Redis集群到单点Redis迁移
该工具已经编译成了多平台命令,直接从Github下载二进制文件执行就好了。
项目地址: https://github.com/icowan/redis-tool
把代码拉下来之后直接执行命令 make 就可以编译多个平台可执行文件,需要依赖golang编译器。
- Windows amd64: redis-tool-windows-amd64.exe
- MacOS amd64: redis-tool-darwin-amd64
- Linux amd64: redis-tool-linux-amd64
- Linux arm64: redis-tool-linux-arm64
查看使用方法:
$ chmod a+x redis-tool-linux-amd64 $ ./redis-tool-linux-amd64 -h
支持的数据类型
- string 字符串
- hash 散列列表
- list 列表
- sorted-set 有序集合
如何使用
下载好命令并授权之后执行 ./redis-tool-linux-amd64 -h 可以查看该工具所支持的所有功能:
$ ./redis-tool-darwin-amd64 migrate -h 数据迁移命令 Usage: redis-tool migrate [command] Examples: 支持命令: [hash, set, sorted-set, list] Available Commands: all 迁移所有 hash 哈希列表迁移 list 列表迁移 set redis set 迁移 sorted-set 有序集合迁移 Flags: -h, --help help for migrate --source-auth string 源密码 --source-database int 源database --source-hosts string 源redis地址, 多个ip用','隔开 (default "127.0.0.1:6379") --source-prefix string 源redis前缀 --source-redis-cluster 源redis是否是集群 --target-auth string 目标密码 --target-database int 目标database --target-hosts string 目标redis地址, 多个ip用','隔开 (default "127.0.0.1:6379") --target-prefix string 目标redis前缀 --target-redis-cluster 目标redis是否是集群 Use "redis-tool migrate [command] --help" for more information about a command.
参数说明:
- --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-tool migrate hash -h 查看使用说明
$ redis-tool migrate hash helloworld --source-hosts 127.0.0.1:6379 --target-redis-cluster true --target-hosts 127.0.0.1:6379,127.0.0.1:7379 --target-auth 123456
有序集合
可以通过命令 redis-tool migrate sorted-set -h
查看使用说明
有序集合的数据量可能会比较大,所以这里按 50000 为单位进行了切割。我这里测试过迁移近17000000万条的数据,用时40多分钟。
$ redis-tool migrate hash helloworld --source-hosts 127.0.0.1:6379 --target-redis-cluster true --target-hosts 127.0.0.1:6379,127.0.0.1:7379 --target-auth 123456
迁移所有key的数据支持通配符过滤
可以通过命令 redis-tool migrate all -h
查看使用说明
$ redis-tool migrate all "ipdetect:*" \ --source-hosts 127.0.0.1:6379 --target-redis-cluster true --target-hosts 127.0.0.1:6379,127.0.0.1:7379 --target-auth 123456
这个命令会编译匹配到的所有类型的key,再根据key的类型进行逐步迁移。
尾巴
使用golang写的一个比较简单的工具, 主要用于在Redis没有持久化或多套Redis向一套Redis迁移的情况下使用。
总结
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- dnf110版本刃影装备搭配
- 短剧《跟着微短剧去旅行》开机仪式在贵阳举行
- 你要是哭的话我就不听你说了,本来就和我没关系。
- 【游新视界】《印蒂卡》试玩 修女与撒旦的送信之旅
- [ABC]纯音乐发烧试音碟《开盘母带试音极品(6N纯银版)》[WAV+CUE]
- [ABC]圣路易诹坊太古社《响鼓》[6N纯银镀膜][正版低速原抓WAV+CUE]
- [ABC]《当·威廉姆斯发烧精选[6N纯银镀膜]》[正版低速原抓WAV+CUE]
- 空包叫花鸡店主称临时工错拿样品:目前已停售
- 成绩出色!托比版《蜘蛛侠》三部曲重映票房320万美元
- 风水轮流转!《地狱潜者2》单日获近3万好评
- 新手入坑指南推荐,新手战力养成指南介绍
- 原画壁纸及美图第211期,无水印可自取
- 原画壁纸及美图第211期,无水印可自取
- 王中平.2006-平凡的幸福【麻辣唱片】【WAV+CUE】
- 金城武.1996-精选集Memories【EMI百代】【WAV+CUE】