[Redis] Redis Persistence: RDB & AOF Explained

Redis Persistence (영속성 & 데이터 저장) #

Redis는 인메모리 데이터 저장소로 매우 빠르지만, 메모리 기반이기 때문에 서버 재시작 시 데이터가 사라질 수 있습니다.
이를 보완하기 위해 Redis는 디스크에 데이터를 저장하는 영속성(Persistence) 기능을 제공합니다. Redis는 두 가지 영속성 방식을 지원합니다.

  1. RDB (Snapshotting)
  2. AOF (Append Only File)

🔎 Persistence 개념 #

Redis Persistence는 Redis 데이터를 메모리뿐 아니라 디스크에도 저장해 장애 시 데이터를 복원할 수 있도록 해줍니다.
이 두 방식은 목적은 같지만 저장 방식과 복구 방식, 성능 특성이 다릅니다.


1️⃣ RDB (Snapshotting) #

🧠 개념 #

RDB는 특정 시점의 Redis 메모리 데이터를 스냅샷 형태로 디스크에 저장하는 방식입니다.
dump 파일(dump.rdb)로 저장되며 Redis 재시작 시 이 파일을 다시 읽어 데이터 복구를 수행합니다.


🧩 RDB 저장 시점: SAVE vs BGSAVE #

Redis는 두 가지 스냅샷 저장 방법을 제공합니다.

명령영향
SAVERedis 프로세스를 잠시 멈추고 즉시 스냅샷을 생성 (blocking)
BGSAVE자식 프로세스를 fork하여 백그라운드에서 저장 (non‑blocking)
  • SAVE: 동기식으로 데이터 저장 → 서비스 중단 위험
  • BGSAVE: fork 기반 비동기 저장 → 서비스 중단 없이 백업 가능

RDB는 기본적으로 BGSAVE 방식을 사용합니다.


🧠 설정 예시 #

redis.conf 파일 예:

1save 900 1      # 900초 동안 1회 이상 변경되면 저장
2save 300 10     # 300초 동안 10회 이상 변경되면 저장
3save 60 10000   # 60초 동안 10000회 이상 변경되면 저장

추가 설정:

1dbfilename dump.rdb
2dir /var/lib/redis
3stop-writes-on-bgsave-error yes
4rdbcompression yes
5rdbchecksum yes

📊 장단점 #

항목장점단점
파일 크기작음중간 주기 사이 데이터 손실 가능
복구 속도빠름fork 비용 발생
운영 특성빠른 백업빈번 저장시 성능 영향

2️⃣ AOF (Append Only File) #

🧠 개념 #

AOF는 모든 쓰기(write) 명령을 순차적으로 기록하는 방식입니다. Redis는 저장된 로그를 재실행하여 데이터를 복구합니다.

📌 설정 예시 #

redis.conf 예:

1appendonly yes
2appendfilename "appendonly.aof"
3appendfsync everysec
4auto-aof-rewrite-percentage 100
5auto-aof-rewrite-min-size 64mb

📌 AOF 세부 옵션 #

옵션설명
appendfsync로그 동기화 타이밍 (always, everysec, no)
no-appendfsync-on-rewriterewrite중 fsync 중단 여부
auto-aof-rewrite-percentage자동 rewrite 비율
auto-aof-rewrite-min-size자동 rewrite 최소 파일 크기
aof-load-truncated손상시 기록 잘라쓰기 옵션
aof-use-rdb-preambleRDB 프리앰블 포함 여부
aof-timestamp-enabled타임스탬프 기록 여부

이런 옵션들은 AOF 동작 및 성능/안정성 균형을 조정하는 데 유용합니다.


📊 AOF 특징 #

항목내용
파일 크기
복구 속도느림
데이터 무결성높음

RDB vs AOF 비교 #

항목RDBAOF
저장 방식Snapshot모든 쓰기 로그
데이터 안전보통매우 높음
파일 크기작음
복구 속도빠름느림
운영 상황주기 백업데이터 무결성 우선

실무 운영 전략 #

  • Cache 용도: 영속성 비활성화 가능
  • 주기 백업: RDB 설정을 통해 스냅샷 저장
  • 데이터 무결성 우선: AOF 기록 활성화
  • 균형 전략: RDB + AOF 동시 활성화

RDB는 빠른 복구를, AOF는 적은 데이터 유실을 보장합니다. 두 방식을 병행하면 운영 안정성을 높일 수 있습니다.


정리 #

Redis Persistence는 데이터 안정성과 운영 목적에 따라 선택합니다.

  • 🧠 RDB: Snapshot 기반으로 빠른 복구, 작은 파일
  • 📜 AOF: 모든 쓰기 로그 기록, 데이터 무결성 우수
  • 🔄 혼합: 두 방식 장점을 조합한 운영 전략

Advertisement