목적
개인 프로젝트에서 하는데 Redis를 사용하게 되었다. 서버가 업그레이드 될 때 Redis 프로세스를 내렸다 올려야하는데 Redis는 In-memory DB이므로 프로세스가 내려가면 데이터가 날라간다. 지금 Redis에는 로그인한 사용자 정보를 관리하고 있으므로, 이 데이터가 날라가면 모든 사용자가 로그아웃되게 된다. 그러므로 데이터 백업 옵션을 설정해야하고, 그 과정을 기록한다.
백업 옵션 비교
AOF | RDB | |
RPO | 모든 CRUD를 기록하므로 낮은 RPO를 제공함 | 특정 주기마다 스냅샷을 생성하므로 스냅샷 생성 주기마다 RPO가 다를 수 있음 |
오버헤드 | 지속적으로 로깅하므로 I/O가 커짐 | 특정 주기마다 실행하므로 낮음 |
옵션 설정 방법
appendonly yes
AOF 옵션 활성화
dir /data
데이터 저장 경로. Redis 이미지에서 working 디렉터리로 사용하고 있는 경로.
appendfilename "appendonly.aof"
파일 이름
auto-aof-rewrite-min-size 500mb
파일 최대 크기
aof-rewrite-incremental-fsync yes
파일이 50MB가 도달되면 파일 사이즈를 줄이기 위해 파일을 재작성하는 옵션
fsync 명령어란?
기록된 데이터가 디스크에 물리적으로 저장되도록 하는 데 사용되는 명령어
데이터 복구
1. 레디스 프로레스 종료 전 모든 데이터는 /data 경로에 저장되어 있는다.
2. 프로세스가 종료되고 서버가 업그레이드 된다
3. 레디스 프로세스가 올라오고 /data 경로에 저장된 데이터가 복구된다
참조 사이트
https://dataonair.or.kr/db-tech-reference/d-guide/data-practical/?mod=document&uid=392