这里给大家分享一个Redis的数据迁移和清洗工具那就是阿里巴巴开源工具redis-shake。redis-shake工具使用起来比较简单。也经历过大厂的认证。正确性和稳定性都有非常保障。
redis-shake 常见于生产环境中将 Redis 单机实例迁移到集群实例或者需要无缝将一个小规格 Redis 实例迁移到另一个大规格 Redis 实例。
redis-shake 支持迁移单实例。集群等。也支持将数据备份或者迁移到阿里云。经过迭代。目前 redis-shake 有两个版本。
从 GitHub 下载二进制或者自己从代码编译都行。redis-shake 使用 Go 语言开发。整体代码也比较简单易懂。感兴趣的小伙伴也可以自行查阅。除此之外。如果要使用数据过滤的功能。可以使用 Lua 语言进行自定义。保证了工具的灵活性。
更多项目详情请查看如下链接。
开源项目地址:https://github.com/alibaba/RedisShake
开源项目作者:https://github.com/alibaba
实战
正式操作前先在测试环境实践一把看看效果如何。先说明下环境
源库:192.168.28.142
目标库:192.168.147.128
步骤一:
使用wget命令下载至本地
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.0.2-20200506/redis-shake-v2.0.2.tar.gz
步骤二:
解压。进入相应目录看看有哪些东东
步骤三:
更改配置文件redis-shake.conf
日志输出
源端连接配置
目标端设置
步骤四:
./start.sh redis-shake.conf sync
查看日志文件
查看下数据同步情况。如下图。发现所有的库都同步过来了。非常nice。
但如果只想同步某个库又该怎么操作呢?
马上查阅了配置文件及官方文档。稍作调整就可以。具体如下
配置项 说明
target.db:设置待迁移的数据在目的Redis中的逻辑数据库名。例如。要将所有数据迁移到目的Redis中的DB10。则需将此参数的值设置为10。当该值设置为-1时。逻辑数据库名在源Redis和目的Redis中的名称相同。即源Redis中的DB0将被迁移至目的Redis中的DB0。DB1将被迁移至DB1。以此类推。
filter.db.whitelist 指定的db被通过。比如0;5;10将会使db0, db5, db10通过, 其他的被过滤
那比如我这边只想把源端的10库同步至目标端的10库只需对配置文件进行如下改动
重新执行步骤四命令。执行后效果如下。大功告成。
另外还有一个配置项特意说明下
配置项 说明
key_exists 当源目的有重复key。是否进行覆写。rewrite表示源端覆盖目的端。none表示一旦发生进程直接退出。ignore表示保留目的端key。忽略源端的同步key。该值在rump模式下没有用。
当前仅仅是单个节点到单个节点的同步。如涉及到集群等其他一些场景下。请参考官方文档说明。自行测试。
腾讯云。阿里云。Google谷歌云。华为云。天翼云。移动云。AWS亚马逊云代理商哪家好?推荐找。可享受全网最高折扣。高额返现优惠。详询电话40 0-63 8-88 08官网:wwW.IdCbeSt.cOm
本文地址:https://gpu.xuandashi.com/38667.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!