Repolode
tair-opensource

tair-opensource/RedisShake

基于 Go 的 Redis 与 Valkey 数据迁移及转换工具,支持云上兼容服务。

Star
4,451
Fork
784
未关闭 Issue
154
最近提交
9天前

这是什么?

RedisShake 用于在 Redis 或 Valkey 实例之间迁移与转换数据,覆盖单机、主从、哨兵和集群等部署形态。数据可通过实时复制(PSync)、RDB 文件或键扫描(Scan)获取,并写入目标实例。过滤规则可按键前缀等条件跳过部分数据,脚本函数则支持在迁移过程中自定义转换。

工具可用于阿里云 Tair、AWS ElastiCache 和 MemoryDB 等兼容 Redis 的云服务之间的迁移,也支持 TairString、TairZSet、TairHash 等模块。通过 TOML 配置文件启动,并提供 Docker 镜像。

项目不支持断点续传,中断后需从头全量同步;同时假设集群拓扑静态不变,扩缩容、故障切换或槽位迁移都会导致进程 panic。因此更适合一次性迁移,而非长期持续同步。

核心功能

  • 01支持单机、主从、哨兵和集群形态的 Redis 与 Valkey 数据迁移。
  • 02可通过 PSync 复制、RDB 文件或键扫描读取数据。
  • 03支持按键前缀过滤,并可用脚本自定义转换数据。
  • 04兼容 ElastiCache、MemoryDB、Tair 及 Tair 相关模块。
  • 05通过 TOML 配置文件运行,也提供 Docker 镜像。

适用场景

  • 将 Redis 数据集一次性迁移到新服务器或云服务。
  • 在迁移到 Valkey 时跳过临时键或缓存键。
  • 将自建 Redis 数据迁移到 AWS ElastiCache 或 MemoryDB。

快速上手

  1. 1

    使用 Docker 运行 RedisShake

    docker run --network host -e SYNC=true -e SHAKE_SRC_ADDRESS=127.0.0.1:6379 -e SHAKE_DST_ADDRESS=127.0.0.1:6380 ghcr.io/tair-opensource/redisshake:latest
  2. 2

    克隆代码仓库

    git clone https://github.com/tair-opensource/RedisShake
  3. 3

    从源码构建(需先安装 Go)

    sh build.sh
  4. 4

    使用 shake.toml 配置文件运行 RedisShake

    ./redis-shake shake.toml

使用前须知

  • 不支持断点续传(checkpoint),重启后会从头进行全量同步。
  • 集群拓扑变化(如扩缩容、故障转移或槽位迁移)会导致进程崩溃(panic)。
  • 更适合一次性数据迁移,不适合长期持续同步。

标签

#redis#valkey#data-migration#database-tools#replication#cloud-migration#redis-cluster#redis-proxy

常见问题

RedisShake 是什么?
基于 Go 的 Redis 与 Valkey 数据迁移及转换工具,支持云上兼容服务。 RedisShake 用于在 Redis 或 Valkey 实例之间迁移与转换数据,覆盖单机、主从、哨兵和集群等部署形态。数据可通过实时复制(PSync)、RDB 文件或键扫描(Scan)获取,并写入目标实例。过滤规则可按键前缀等条件跳过部分数据,脚本函数则支持在迁移过程中自定义转换。
RedisShake 可以免费使用吗?用的什么许可证?
RedisShake 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
RedisShake 还在维护吗?
活跃维护中。RedisShake 最近一次提交是在 2026年10月30日。
RedisShake 适合用来做什么?
将 Redis 数据集一次性迁移到新服务器或云服务。 在迁移到 Valkey 时跳过临时键或缓存键。 将自建 Redis 数据迁移到 AWS ElastiCache 或 MemoryDB。
RedisShake 怎么安装和运行?
使用 Docker 运行 RedisShake: docker run --network host -e SYNC=true -e SHAKE_SRC_ADDRESS=127.0.0.1:6379 -e SHAKE_DST_ADDRESS=127.0.0.1:6380 ghcr.io/tair-opensource/redisshake:latest 克隆代码仓库: git clone https://github.com/tair-opensource/RedisShake 从源码构建(需先安装 Go): sh build.sh 使用 shake.toml 配置文件运行 RedisShake: ./redis-shake shake.toml
在哪里获取 RedisShake?
源代码和安装说明在 GitHub 上:https://github.com/tair-opensource/RedisShake

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目