Repolode
tair-opensource

tair-opensource/RedisShake

A Go tool for migrating and transforming data between Redis and Valkey instances, including cloud-hosted Redis-compatible services.

Stars
4,451
Forks
784
Open issues
154
Last commit
8 days ago

What is it?

RedisShake moves data between Redis or Valkey instances, covering standalone, master-slave, sentinel, and cluster deployments. It can pull data through live replication (PSync), from an RDB file, or by scanning keys, and write it to a target instance. Filter rules let you skip keys by prefix or pattern, and script-based functions allow custom transformation during migration.

The tool is aimed at moving data between databases, including Redis-like services from Alibaba Cloud (Tair), AWS ElastiCache and MemoryDB. It also supports Tair modules such as TairString, TairZSet and TairHash. Configuration is a TOML file passed to the binary, and a Docker image is available.

The project documents that it does not support resumable transfer, so an interrupted run restarts with a full resync. It also assumes a static cluster topology; scaling, failover or slot migration will cause the process to panic. It is best suited to one-time migrations rather than long-term continuous sync.

Key features

  • 01Migrates data from standalone, master-slave, sentinel, and cluster Redis or Valkey deployments.
  • 02Reads data via PSync replication, RDB files, or key scanning.
  • 03Filters keys by prefix and applies script-based transformations.
  • 04Works with ElastiCache, MemoryDB, and Tair, plus Tair modules.
  • 05Runs from a TOML config file or a Docker image.

Use cases

  • One-time migration of a Redis dataset to a new server or cloud service.
  • Copying Redis data to Valkey while skipping temporary or cache keys.
  • Moving data into AWS ElastiCache or MemoryDB from self-hosted Redis.

Quick start

  1. 1

    Run RedisShake in Docker

    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

    Clone the repository

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

    Build it from source (Go must be installed)

    sh build.sh
  4. 4

    Run RedisShake with your shake.toml config file

    ./redis-shake shake.toml

Things to know

  • Resumable transfer (checkpoint) is not supported, so a restart performs a full resync from the beginning.
  • Cluster topology changes such as scaling, failover, or slot migration will cause the process to panic.
  • Best suited for one-time migrations rather than long-term continuous synchronization.

Topics

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

FAQ

What is RedisShake?
A Go tool for migrating and transforming data between Redis and Valkey instances, including cloud-hosted Redis-compatible services. RedisShake moves data between Redis or Valkey instances, covering standalone, master-slave, sentinel, and cluster deployments. It can pull data through live replication (PSync), from an RDB file, or by scanning keys, and write it to a target instance. Filter rules let you skip keys by prefix or pattern, and script-based functions allow custom transformation during migration.
Is RedisShake free to use? What license does it have?
RedisShake is open source under the MIT license. Check the license terms before using it in commercial products.
Is RedisShake still maintained?
Actively maintained. The last commit to RedisShake was on Oct 30, 2026.
What can I use RedisShake for?
One-time migration of a Redis dataset to a new server or cloud service. Copying Redis data to Valkey while skipping temporary or cache keys. Moving data into AWS ElastiCache or MemoryDB from self-hosted Redis.
How do I install RedisShake?
Run RedisShake in Docker: 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 Clone the repository: git clone https://github.com/tair-opensource/RedisShake Build it from source (Go must be installed): sh build.sh Run RedisShake with your shake.toml config file: ./redis-shake shake.toml
Where can I get RedisShake?
The source code and installation instructions are on GitHub: https://github.com/tair-opensource/RedisShake

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects