Redis 8로 Redis 클러스터 업그레이드하기
Redis 8로 Redis 클러스터 업그레이드하기
Redis 오픈소스 클러스터를 Redis 8로 업그레이드하는 절차를 알아볼 거예요. 지원되는 업그레이드 경로는 Redis 오픈소스 7.x(모듈 포함 여부 무관)에서 Redis 8로, 그리고 Redis Stack 7.2 또는 7.4에서 Redis 오픈소스의 Redis 8로 업그레이드하는 경우예요. 운영 환경에서 업그레이드하기 전에 통제된 환경에서 연습해 보는 게 아주 중요해요. Docker가 그 용도로 훌륭한 도구랍니다.
현재 데이터 저장하기
업그레이드 전에 클러스터의 각 노드(포트로 구분)에서 다음 명령으로 현재 데이터셋의 스냅샷을 만들어요.
redis-cli -p <port> SAVE
클러스터의 모든 노드(마스터와 레플리카 모두)에서 반복해서 실행해요.
이렇게 하면 노드의 Redis 데이터 디렉터리에 dump.rdb 같은 RDB 파일이 생성되거나 갱신돼요. AOF 영속성을 사용한다면 appendonly.aof.*라는 이름의 파일이 만들어지고, 데이터 디렉터리 안의 appendonlydir 디렉터리에 기록돼요. AOF 관련 디렉터리와 파일 이름은 기본값이에요. 기본값과 다르다면 redis.conf 파일에 정의한 이름을 사용하면 돼요.
데이터 디렉터리가 어디 있는지 확인하려면 각 노드에서 다음 명령을 사용해요.
redis-cli -p <port> CONFIG GET dir
진행하기 전에 그 디렉터리들에 들어 있는 파일을 복사해 두세요.
Redis 노드 업그레이드하기
레플리카부터 시작해서 노드를 한 번에 하나씩 업그레이드해요. 단계는 이렇게 되어요.
- 현재 버전의 Redis 오픈소스 또는 Redis Stack 서버를 중지해요.
- 자신의 Redis 배포판에 해당하는 설치 단계를 따라 Redis 8을 설치해요.
- 자동으로 시작되지 않았다면 Redis 8을 시작해요.
저장된 파일에서 복원하기(필요한 경우)
필요하다면 각 노드에 저장된 파일을 원래 위치로 복원한 뒤 각 노드에서 Redis를 다시 시작해요.
⚠️ 모든 마스터 샤드가 업그레이드를 마칠 때까지 Redis Search는 완전히 동작하지 않아요. 업그레이드 중에 보내진 쿼리는 오류를 반환하거나 "Waiting for all nodes to connect" 같은 메시지를 반환해요.
업그레이드 검증하기
redis-cli -p <port> INFO server | grep redis_version
redis-cli -p <port> cluster info
redis-cli --cluster check <IP address>:<port>
데이터에 접근 가능한지, 클라이언트가 정상적으로 연결되는지도 확인해 보세요.