Repolode
tair-opensource

tair-opensource/RedisShake

RedisやValkeyのインスタンス間でデータを移行・変換するGo製ツール。クラウド上のRedis互換サービスにも対応。

スター
4,451
フォーク
784
未解決の Issue
154
最終コミット
8 日前

これは何?

RedisShakeは、スタンドアロン、マスター・レプリカ、Sentinel、クラスター構成のRedisまたはValkeyインスタンス間でデータを移行します。ライブレプリケーション(PSync)、RDBファイル、キーのスキャンを使ってデータを読み込み、移行先のインスタンスに書き込めます。フィルタールールでプレフィックスやパターンに一致するキーを除外でき、スクリプトベースの関数を使って移行中にデータを独自に変換できます。

データベース間のデータ移行を想定しており、Alibaba Cloud(Tair)、AWS ElastiCache、MemoryDBのRedis互換サービスにも対応しています。TairString、TairZSet、TairHashなどのTairモジュールもサポートします。設定はバイナリに渡すTOMLファイルに記述し、Dockerイメージも利用できます。

プロジェクトのドキュメントによると、転送の再開には対応していないため、処理が中断されると全データを再同期して再実行します。また、クラスターのトポロジーが固定されていることを前提としており、スケーリング、フェイルオーバー、スロット移行が発生するとプロセスがpanicします。長期的な継続同期よりも、一度限りの移行に適しています。

主な機能

  • 01スタンドアロン、マスター・レプリカ、Sentinel、クラスター構成のRedisまたはValkeyからデータを移行します。
  • 02PSyncレプリケーション、RDBファイル、キーのスキャンを使ってデータを読み込みます。
  • 03プレフィックスでキーをフィルタリングし、スクリプトベースの変換を適用します。
  • 04ElastiCache、MemoryDB、Tairと、Tairモジュールに対応しています。
  • 05TOML設定ファイルまたはDockerイメージを使って実行できます。

ユースケース

  • Redisのデータセットを新しいサーバーやクラウドサービスに一度限りで移行する。
  • 一時キーやキャッシュキーを除外しながら、RedisのデータをValkeyにコピーする。
  • セルフホストのRedisからAWS ElastiCacheまたはMemoryDBにデータを移行する。

クイックスタート

  1. 1

    DockerでRedisShakeを実行する

    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

    リポジトリをクローンする

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

    ソースからビルドする(Goのインストールが必要です)

    sh build.sh
  4. 4

    shake.toml設定ファイルを指定してRedisShakeを実行する

    ./redis-shake shake.toml

使う前に知っておきたいこと

  • 転送の再開(checkpoint)には対応していないため、再起動すると最初から全件再同期されます。
  • スケーリング、フェイルオーバー、スロット移行など、クラスターのトポロジーが変更されるとプロセスがpanicします。
  • 長期的な継続同期よりも、一度限りの移行に適しています。

トピック

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

よくある質問

RedisShake とは?
RedisやValkeyのインスタンス間でデータを移行・変換するGo製ツール。クラウド上のRedis互換サービスにも対応。 RedisShakeは、スタンドアロン、マスター・レプリカ、Sentinel、クラスター構成のRedisまたはValkeyインスタンス間でデータを移行します。ライブレプリケーション(PSync)、RDBファイル、キーのスキャンを使ってデータを読み込み、移行先のインスタンスに書き込めます。フィルタールールでプレフィックスやパターンに一致するキーを除外でき、スクリプトベースの関数を使って移行中にデータを独自に変換できます。
RedisShake は無料で使えますか?ライセンスは?
RedisShake は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
RedisShake は今もメンテナンスされていますか?
活発にメンテナンス中。RedisShake の最終コミットは 2026年10月30日 です。
RedisShake は何に使えますか?
Redisのデータセットを新しいサーバーやクラウドサービスに一度限りで移行する。 一時キーやキャッシュキーを除外しながら、RedisのデータをValkeyにコピーする。 セルフホストのRedisからAWS ElastiCacheまたはMemoryDBにデータを移行する。
RedisShake のインストール方法は?
DockerでRedisShakeを実行する: 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 リポジトリをクローンする: git clone https://github.com/tair-opensource/RedisShake ソースからビルドする(Goのインストールが必要です): sh build.sh shake.toml設定ファイルを指定してRedisShakeを実行する: ./redis-shake shake.toml
RedisShake はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tair-opensource/RedisShake

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト