반응형
Redis의 복제(Replication) 구성은 마스터-슬레이브 아키텍처를 통해 이루어지며, 이를 통해 마스터 서버의 데이터를 복제하여 여러 슬레이브 서버로 동기화할 수 있습니다. 복제는 데이터 백업이나 부하 분산을 위해 자주 사용됩니다. Redis 복제는 읽기 전용 작업을 슬레이브 서버에서 처리할 수 있으며, 마스터 서버에서의 모든 쓰기 작업은 슬레이브 서버로 동기화됩니다.
Redis 복제 설정 방법
- Redis 설치 및 설정: Redis가 설치되어 있지 않다면 마스터 및 슬레이브 서버에 Redis를 설치합니다. 설치 후 설정 파일을 수정하여 복제를 구성합니다.
- 마스터 Redis 설정:
- 마스터는 기본적으로 특별한 설정 없이 운영할 수 있으며, 쓰기 작업이 마스터에서만 이루어집니다. redis.conf에서 추가로 설정할 부분은 없습니다.
- 슬레이브 Redis 설정: 슬레이브는 마스터의 데이터를 복제하는 역할을 합니다. 슬레이브 설정은 redis.conf 파일에서 지정할 수 있습니다.
bash코드 복사replicaof <master-ip> <master-port>
-
bash코드 복사replicaof 192.168.0.10 6379
- 슬레이브 Redis 서버의 설정 파일에서 아래 설정을 추가하거나 수정합니다.
- 재시작: 슬레이브 Redis 설정을 변경한 후 Redis를 재시작합니다.
-
bash코드 복사sudo systemctl restart redis
- 동기화 확인: 슬레이브 서버가 제대로 복제되고 있는지 확인하려면 redis-cli를 사용해 슬레이브 서버에 접속한 후 다음 명령어를 실행합니다.이 명령어를 실행하면 현재 슬레이브 서버가 어떤 마스터 서버와 연결되어 있는지, 복제 상태가 어떤지 확인할 수 있습니다. 여기서 role:slave, master_host: <master-ip>, master_link_status: up 등이 표시되면 성공적으로 복제가 이루어지고 있는 상태입니다.
-
bash코드 복사INFO replication
Redis 복제 흐름
- 마스터(Master): 모든 쓰기 작업은 마스터 서버에서 처리되며, 마스터는 슬레이브 서버에 데이터를 동기화합니다.
- 슬레이브(Slave): 슬레이브는 마스터 서버의 데이터를 복제하고, 읽기 전용 작업을 처리할 수 있습니다. 슬레이브는 마스터의 데이터를 실시간으로 동기화하지만, 쓰기 작업은 할 수 없습니다.
Redis 복제 주요 개념
- 비동기 복제: Redis 복제는 기본적으로 비동기적으로 이루어집니다. 마스터 서버에서 데이터를 업데이트하면 해당 데이터가 슬레이브 서버로 전송되지만, 슬레이브 서버는 즉시 동기화되지 않을 수 있습니다.
- 복제 지연: 네트워크 상태나 마스터 서버의 부하에 따라 슬레이브와 마스터 간에 약간의 지연이 발생할 수 있습니다. 슬레이브는 비동기적으로 데이터를 받기 때문에 최신 데이터가 항상 슬레이브에 있을 것이라고 보장되지 않습니다.
- 읽기 전용 슬레이브: 슬레이브 서버는 기본적으로 읽기 전용입니다. 슬레이브에서 쓰기 작업을 시도하면 오류가 발생합니다.
Redis 복제 구성 후 추가 작업
- Sentinel 구성: 고가용성을 위해 Redis Sentinel을 사용하여 마스터 장애 시 슬레이브 서버를 자동으로 마스터로 승격할 수 있습니다. 이를 통해 장애 복구를 자동화할 수 있습니다.
- 보안 설정: 복제 구성 시 네트워크를 통해 마스터와 슬레이브 간 데이터가 전송되므로, 보안 설정이 필요할 수 있습니다. 예를 들어, Redis의 requirepass 옵션을 사용하여 비밀번호 인증을 설정하거나, 방화벽을 통해 외부 접근을 제한할 수 있습니다.
결론
Redis 복제는 간단하게 설정할 수 있으며, 마스터-슬레이브 아키텍처를 통해 데이터를 동기화할 수 있습니다. replicaof 설정을 통해 슬레이브가 마스터의 데이터를 실시간으로 복제하고, 슬레이브 서버에서 읽기 작업을 처리할 수 있습니다. 고가용성을 위해 Sentinel과 같은 추가적인 설정을 통해 장애 조치도 구성할 수 있습니다.
반응형