Repolode
tair-opensource

tair-opensource/RedisShake

Redis와 Valkey 인스턴스 간에 데이터를 마이그레이션하고 변환하는 Go 도구로, 클라우드에서 호스팅되는 Redis 호환 서비스도 지원합니다.

스타
4,451
포크
784
열린 이슈
154
마지막 커밋
9일 전

어떤 프로젝트인가요?

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 통계는 매일 갱신됩니다.

관련 프로젝트