Go to file
OMG-By 307a284aeb
feat: support RDB_TYPE_HASH_* and related cmds from Redis 7.4 (#970)
2025-06-25 10:43:35 +08:00
.github Update pages.yml (#942) 2025-03-27 11:42:27 +08:00
cmd/redis-shake add aof_writer cmd_writer json_writer (#914) 2025-01-14 15:52:32 +08:00
docs Update sync_reader.md (#966) 2025-06-12 17:02:31 +08:00
internal feat: support RDB_TYPE_HASH_* and related cmds from Redis 7.4 (#970) 2025-06-25 10:43:35 +08:00
scripts refactor: Optimize table.go 2023-10-11 19:51:38 +08:00
tests feat: reduce latency for reading AOF and flushing commands to destination 2024-12-13 16:56:41 +08:00
.gitignore No need to print WARNING message while receiving the null reply (#805) 2024-05-22 16:54:11 +08:00
Dockerfile feat: add Docker support (#861) 2024-09-11 11:37:15 +08:00
README.md fix: avoid file not exist 2024-12-13 17:10:03 +08:00
build.sh feat: add version to release asset names (#901) 2024-12-12 16:55:55 +08:00
entrypoint.sh feat: add Docker support (#861) 2024-09-11 11:37:15 +08:00
go.mod Optimize: bytes.Index and humanize.IBytes in SyncStandaloneReader (#909) 2025-01-14 15:54:58 +08:00
go.sum feat: added the log rotation (#910) 2024-12-26 10:27:33 +08:00
license.txt redis-shake v3.0.0 2022-07-02 13:47:56 +08:00
shake.toml add aof_writer cmd_writer json_writer (#914) 2025-01-14 15:52:32 +08:00
shake_scan_env.toml feat: add Docker support (#861) 2024-09-11 11:37:15 +08:00
shake_sync_env.toml feat: add Docker support (#861) 2024-09-11 11:37:15 +08:00
test.sh bugfix: Fixed testing issues 2023-09-28 13:32:37 +08:00

README.md

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