Redis 영속성(Persistence) 개념
영속성 개요
Redis는 기본적으로 메모리 기반 데이터베이스로 설계되었지만, 데이터를 영구적으로 저장할 수 있는 영속성 옵션을 제공합니다. 영속성은 Redis 서버가 중단되더라도 데이터를 복구할 수 있도록 하며, 주요 방법으로 RDB(Snapshot)와 AOF(Append Only File)가 있습니다.
Redis 클라우드에서 RDB와 AOF 설정 확인 방법
Redis Insight 또는 CLI 연결
화면에 제공된 Public Endpoint를 통해 Redis CLI 또는 Redis Insight를 사용해 Redis 서버에 연결합니다.
연결 후, 다음 명령어를 실행하면 현재 설정을 확인할 수 있습니다.
CONFIG GET save # RDB 저장 주기 확인
CONFIG GET appendonly # AOF 활성화 여부 확인RDB(Snapshot)
개념
RDB는 특정 시점의 데이터를 스냅샷 형태로 디스크에 저장합니다. 이는 설정된 주기적으로 Redis 데이터를 덤프하여 생성되는 바이너리 파일입니다.
장점
디스크 I/O가 적어 Redis 성능에 영향을 최소화.
파일 크기가 작고 효율적.
재시작 시 빠르게 데이터를 로드 가능.
단점
데이터 손실 가능성: 저장 주기와 서버 종료 사이의 데이터는 손실될 수 있음.
큰 데이터베이스에서는 스냅샷 생성 시 지연 가능성.
설정
RDB 설정은 redis.conf 파일에서 save 옵션을 통해 조정합니다.
save 900 1 # 900초(15분)마다 1개 이상의 키가 변경되었을 경우 저장
save 300 10 # 300초(5분)마다 10개 이상의 키가 변경되었을 경우 저장
save 60 10000 # 60초(1분)마다 10,000개 이상의 키가 변경되었을 경우 저장AOF(Append Only File)
개념
AOF는 Redis가 처리한 모든 쓰기 명령을 로그 파일에 순차적으로 기록하는 방식입니다. 서버가 재시작되면 AOF 파일을 재생하여 데이터를 복구합니다.
장점
높은 데이터 안전성: 데이터 손실을 최소화.
파일이 사람이 읽을 수 있는 형태로 저장되어 디버깅이 용이.
단점
파일 크기가 커질 가능성.
추가적인 디스크 I/O로 성능 저하 가능성.
복구 속도가 느릴 수 있음.
설정
AOF 설정은 redis.conf 파일에서 다음과 같이 조정합니다.
appendonly yes # AOF 활성화
appendfsync always # 모든 쓰기 명령 후 디스크에 동기화
appendfsync everysec # 1초마다 동기화 (권장)
appendfsync no # OS가 디스크에 기록할 때까지 대기RDB와 AOF의 차이점
특징 | RDB | AOF |
|---|---|---|
저장 방식 | 특정 시점 스냅샷 저장 | 명령어 로그 순차 저장 |
데이터 안전성 | 주기적 저장으로 손실 가능 | 동기화 주기에 따라 안전성 높음 |
성능 영향 | 성능에 미치는 영향 적음 | 디스크 I/O로 성능 저하 가능 |
파일 크기 | 상대적으로 작음 | 상대적으로 큼 |
복구 속도 | 빠름 | 느릴 수 있음 |
영속성 전략 선택 가이드
Redis에서 RDB와 AOF 중 어떤 영속성 옵션을 사용할지 선택하는 것은 애플리케이션의 요구사항에 따라 달라집니다. 아래는 선택 가이드를 제공합니다.
RDB를 선택해야 하는 경우
데이터 손실에 민감하지 않음.
고성능이 중요한 애플리케이션.
주기적으로 백업이 필요한 경우.
AOF를 선택해야 하는 경우
데이터 손실 가능성을 최소화해야 함.
사람이 읽을 수 있는 로그 파일이 필요.
복구 과정에서 데이터의 세밀한 복원이 필요한 경우.