Repolode
tair-opensource

tair-opensource/RedisShake

Инструмент на Go для миграции и преобразования данных между экземплярами Redis и Valkey, в том числе в облачных сервисах, совместимых с Redis.

Звёзды
4,451
Форки
784
Открытые issues
154
Последний коммит
8 дней назад

Что это?

RedisShake переносит данные между экземплярами Redis или Valkey и поддерживает развертывания в режимах standalone, master-slave, sentinel и cluster. Данные можно получать через потоковую репликацию (PSync), из файла RDB или сканируя ключи, а затем записывать в целевой экземпляр. Правила фильтрации позволяют пропускать ключи по префиксу или шаблону, а скрипты — выполнять пользовательские преобразования во время миграции.

Инструмент предназначен для переноса данных между базами, включая сервисы, совместимые с Redis, от Alibaba Cloud (Tair), AWS ElastiCache и MemoryDB. Он также поддерживает модули Tair, такие как TairString, TairZSet и TairHash. Конфигурация задаётся в TOML-файле, который передаётся бинарному файлу; также доступен Docker-образ.

Согласно документации проекта, возобновить прерванный перенос нельзя: после сбоя процесс начинает полную повторную синхронизацию. Кроме того, предполагается, что топология кластера остаётся неизменной; масштабирование, переключение при сбое или миграция слотов приведут к аварийному завершению процесса. Поэтому инструмент лучше подходит для разовых миграций, а не для длительной непрерывной синхронизации.

Ключевые возможности

  • 01Переносит данные из развертываний Redis или Valkey в режимах standalone, master-slave, sentinel и cluster.
  • 02Получает данные через репликацию PSync, из файлов RDB или сканируя ключи.
  • 03Фильтрует ключи по префиксу и преобразует их с помощью скриптов.
  • 04Работает с ElastiCache, MemoryDB и Tair, а также с модулями Tair.
  • 05Запускается с TOML-файлом конфигурации или в Docker-образе.

Сценарии использования

  • Разовая миграция набора данных Redis на новый сервер или в облачный сервис.
  • Копирование данных Redis в Valkey с пропуском временных ключей или ключей кэша.
  • Перенос данных из самостоятельно развернутого Redis в AWS ElastiCache или MemoryDB.

Быстрый старт

  1. 1

    Запустите RedisShake в 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
  2. 2

    Клонируйте репозиторий

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

    Соберите из исходного кода (необходимо установить Go)

    sh build.sh
  4. 4

    Запустите RedisShake с файлом конфигурации shake.toml

    ./redis-shake shake.toml

Что важно знать

  • Возобновление передачи (checkpoint) не поддерживается, поэтому после перезапуска полная синхронизация начнётся с самого начала.
  • Изменения топологии кластера, такие как масштабирование, переключение при сбое или миграция слотов, приведут к panic процесса.
  • Лучше всего подходит для разовых миграций, а не для длительной непрерывной синхронизации.

Темы

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

Частые вопросы

Что такое RedisShake?
Инструмент на Go для миграции и преобразования данных между экземплярами Redis и Valkey, в том числе в облачных сервисах, совместимых с Redis. RedisShake переносит данные между экземплярами Redis или Valkey и поддерживает развертывания в режимах standalone, master-slave, sentinel и cluster. Данные можно получать через потоковую репликацию (PSync), из файла RDB или сканируя ключи, а затем записывать в целевой экземпляр. Правила фильтрации позволяют пропускать ключи по префиксу или шаблону, а скрипты — выполнять пользовательские преобразования во время миграции.
RedisShake можно использовать бесплатно? Какая у него лицензия?
RedisShake распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
RedisShake всё ещё поддерживается?
Активно поддерживается. Последний коммит в RedisShake — 30 окт. 2026 г..
Для чего можно использовать RedisShake?
Разовая миграция набора данных Redis на новый сервер или в облачный сервис. Копирование данных Redis в Valkey с пропуском временных ключей или ключей кэша. Перенос данных из самостоятельно развернутого Redis в AWS ElastiCache или MemoryDB.
Как установить RedisShake?
Запустите RedisShake в 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 Клонируйте репозиторий: git clone https://github.com/tair-opensource/RedisShake Соберите из исходного кода (необходимо установить Go): sh build.sh Запустите RedisShake с файлом конфигурации shake.toml: ./redis-shake shake.toml
Где скачать RedisShake?
Исходный код и инструкции по установке — на GitHub: https://github.com/tair-opensource/RedisShake

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты