Header Banner
GG Logo

Future Engineering

기술의 최전선을 기록합니다.

기술 자료/Redis/Redis 영속성(Persistence) 개념

Redis 영속성(Persistence) 개념

Redis7개월 전

영속성 개요

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를 선택해야 하는 경우

  • 데이터 손실 가능성을 최소화해야 함.

  • 사람이 읽을 수 있는 로그 파일이 필요.

  • 복구 과정에서 데이터의 세밀한 복원이 필요한 경우.

Redis 영속성(Persistence) 개념 | TECH.KAKAO.GG