<aside>
✔️ 백업이란
in-memory에 들어있는 Redis의 데이터를 디스크로 저장해놓음으로서, 휘발성 메모리에 있던 redis 데이터가 프로세서가 내려갔다 올라와도 복구 및 유지될 수 있도록 하는 방법
</aside>
RDB(Redis Database)를 사용한 백업
정의
- 특정 시점의 스냅샷으로 데이터 저장 (일정 시간마다 전체 데이터를 디스크에 그대로 씀)
- 재시작 시 RDB 파일이 있으면 읽어서 복구
- 백업 주기는 직접 설정 가능하며, 수동으로 명령어를 입력하여 백업 스냅샷을 만들 수도 있음
RDB 사용의 장점
- 작은 파일 사이즈로 백업 파일 관리가 용이 (원격지 백업, 버전 관리 등)
- fork를 이용해 (child process를 만들어서) 백업하므로 서비스 중인 프로세스는 성능에 영향 없음
- 데이터 스냅샷 방식이므로 빠른 복구가 가능 (파일에 저장된 것을 그대로 메모리에 올리면 되므로)
RDB 사용의 단점
- 스냅샷을 저장하는 시점 사이의 데이터 변경사항은 유실될 수 있음
- fork를 이용하기 때문에 시간이 오래 걸릴 수 있고, CPU와 메모리 자원을 많이 소모
- 데이터 무결성이나 정합성에 대한 요구가 크지 않은 경우 사용 가능
(마지막 백업 시 에러 발생 등의 문제)