1.概述
RedisShake 是一个用于处理和迁移 Redis 数据的工具,它提供以下特性:
- Redis 兼容性:RedisShake 兼容从 2.8 到 7.2 的 Redis 版本,并支持各种部署方式,包括单机,主从,哨兵和集群。
-
云服务兼容性
:RedisShake 与主流云服务提供商提供的流行 Redis-like 数据库无缝工作,包括但不限于:
- Module 兼容:RedisShake 与 TairString,TairZSet 和 TairHash 模块兼容。
- 多种导出模式:RedisShake 支持 PSync,RDB 和 Scan 导出模式。
- 数据处理:RedisShake 通过自定义脚本实现数据过滤和转换。

RedisShake 支持三种模式的数据同步方式:

2.下载安装
下载地址:Releases · tair-opensource/RedisShake (github.com)
3.配置介绍
一般用法下,只需要书写 xxx_reader、xxx_writer 两个部分即可
sync_reader
cluster:源端是否为集群address:源端地址, 当源端为集群时,address为集群中的任意一个节点即可-
鉴权:
- 当源端使用 ACL 账号时,配置
username和password - 当源端使用传统账号时,仅配置
password - 当源端无鉴权时,不配置
username和password
- 当源端使用 ACL 账号时,配置
tls:源端是否开启 TLS/SSL,不需要配置证书因为 RedisShake 没有校验服务器证书sync_rdb:是否同步 RDB,设置为 false 时,RedisShake 会跳过全量同步阶段sync_aof:是否同步 AOF,设置为 false 时,RedisShake 会跳过增量同步阶段,此时 RedisShake 会在全量同步阶段结束后退出
Redis Writer
redis_writer 用于将数据写入 Redis-like 数据库。
cluster:是否为集群。address:连接地址。当目的端为集群时,address填写集群中的任意一个节点即可-
鉴权:
- 当使用 ACL 账号体系时,配置
username和password - 当使用传统账号体系时,仅配置
password - 当无鉴权时,不配置
username和password
- 当使用 ACL 账号体系时,配置
tls:是否开启 TLS/SSL,不需要配置证书因为 RedisShake 没有校验服务器证书
注意事项:
- 当目的端为集群时,应保证源端发过来的命令满足 Key 的哈希值属于同一个 slot。
- 应尽量保证目的端版本大于等于源端版本,否则可能会出现不支持的命令。如确实需要降低版本,可以设置
target_redis_proto_max_bulk_len为 0,来避免使用restore命令恢
4 实战1- 单节点向一个一主一从伪集群发起同步
4.1 配置文件
4.2 发起同步测试
- 待同步节点写入数据
- 同步节点读取测试
参考资料
- RedisShake (tair-opensource.github.io)
- 【redis数据同步】redis-shake数据同步全量+增量-CSDN博客
- redis-shake数据同步&迁移&备份导入导出工具使用介绍-阿里云开发者社区 (aliyun.com)
- 什么是 RedisShake | RedisShake (tair-opensource.github.io)
- GitHub – tair-opensource/RedisShake: RedisShake is a Redis data processing and migration tool.
- 官方教程: https://tair-opensource.github.io/RedisShake/zh/guide/getting-started.html
- 官方 github 地址: https://github.com/tair-opensource/RedisShake
正文完