RedisShake is a powerful tool for Redis data transformation and migration, offering:
-
Zero Downtime Migration: Enables seamless data migration without data loss or service interruption, ensuring continuous operation during the transfer process.
-
Valkey/Redis Compatibility: Supports Redis (2.8 to 8.x) and Valkey (8.x to 9.x) across standalone, master–slave, sentinel, and cluster deployments. See Version Compatibility for detailed feature support.
-
Cloud Service Integration: Seamlessly works with Redis-like databases from major cloud providers:
- Alibaba Cloud: Tair (Redis® OSS-Compatible)
- AWS: ElastiCache, MemoryDB
-
Module Support: Compatible with TairString, TairZSet, and TairHash.
-
Flexible Data Source: Supports PSync, RDB, and Scan data fetch methods.
-
Advanced Data Processing: Enables custom script-based data transformation and easy-to-use data filter rules.
-
Download from Releases.
-
Use 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- Build it yourself:
git clone https://github.com/tair-opensource/RedisShake
cd RedisShake
sh build.shCopy and paste this prompt to your LLM agent (Claude Code, Cursor, etc.):
Read the RedisShake usage guide and help me with my task:
https://raw.githubusercontent.com/tair-opensource/RedisShake/v4/README_FOR_AGENTS.md
To move data between two Redis instances and skip some keys:
- Make a file called
shake.tomlwith these settings:
[sync_reader]
address = "127.0.0.1:6379"
[redis_writer]
address = "127.0.0.1:6380"
[filter]
# skip keys with "temp:" or "cache:" prefix
block_key_prefix = ["temp:", "cache:"] - Run RedisShake:
./redis-shake shake.tomlFor more help, check the docs.
Resumable Transfer (Checkpoint) is NOT Supported: RedisShake 4.x does not support resumable transfer. Unlike commercial solutions such as Alibaba Cloud DTS or Tair Global Active-Active which can resume from the last checkpoint after interruption, RedisShake will perform a full resync from the beginning when restarted.
Cluster Topology Change Awareness is NOT Supported: RedisShake assumes a static cluster topology. Any topology changes (such as scaling, failover, or slot migration) will cause the process to panic. Combined with the lack of checkpoint support, RedisShake is best suited for one-time data migration scenarios, not for long-term continuous synchronization.
Before migrating data between different major versions of Redis, we recommend using the resp-compatibility tool for a compatibility check and consulting the compatibility report to avoid known breaking changes and bugs.
RedisShake, actively maintained by the Tair team at Alibaba Cloud, evolved from redis-port. Key milestones:
- RedisShake 2.x: Improved stability and performance.
- RedisShake 3.x: Complete codebase rewrite, enhancing efficiency and usability.
- RedisShake 4.x: Enhanced readers, configuration, observability, and functions.
RedisShake is open-sourced under the MIT license.
