Awesome
RedisShake: Redis Data Transformation and Migration Tool
Overview
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.
-
Redis Compatibility: Supports Redis 2.8 to 7.2, across standalone, master-slave, sentinel, and cluster deployments.
-
Cloud Service Integration: Seamlessly works with Redis-like databases from major cloud providers:
- Alibaba Cloud: ApsaraDB for Redis, Tair
- 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.
How to Get RedisShake
-
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.sh
How to Use RedisShake
To move data between two Redis instances and skip some keys:
- Make a file called
shake.toml
with 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.toml
For more help, check the docs.
History
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.
License
RedisShake is open-sourced under the MIT license.