tair-opensource / RedisShake

RedisShake is a Redis data processing and migration tool.
https://tair-opensource.github.io/RedisShake/
MIT License
3.8k stars 694 forks source link
redis redis-cluster redis-proxy

RedisShake: Redis Data Transformation and Migration Tool

CI Website Release ghcr.io

Overview

RedisShake is a powerful tool for Redis data transformation and migration, offering:

  1. πŸ”„ Zero Downtime Migration: Enables seamless data migration without data loss or service interruption, ensuring continuous operation during the transfer process.

  2. 🌈 Redis Compatibility: Supports Redis 2.8 to 7.2, across standalone, master-slave, sentinel, and cluster deployments.

  3. ☁️ Cloud Service Integration: Seamlessly works with Redis-like databases from major cloud providers:

  4. 🧩 Module Support: Compatible with TairString, TairZSet, and TairHash.

  5. πŸ“€ Flexible Data Source: Supports PSync, RDB, and Scan data fetch methods.

  6. πŸ”§ Advanced Data Processing: Enables custom script-based data transformation and easy-to-use data filter rules.

How to Get RedisShake

  1. Download from Releases.

  2. 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
  3. 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:

  1. 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:"]


2. Run RedisShake:
```shell
./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:

License

RedisShake is open-sourced under the MIT license.