## 개요
- Append Only File
- 명령이 실행될 때마다 파일에 해당 명령을 로그처럼 기록한다.
- 바로 파일에 쓰는 것은 아니고 버퍼에 기록되다가 `appendfsync` 옵션 값에 따라서 파일에 write 한다.
## Rewrite
- 특정 시점에 내용을 전부 지우고 마지막 값만 남겨둔다.
- 이벤트 소싱의 스냅샷과 비슷한 개념인 것 같다.
- rewrite 방식이 Redis7에서 바뀌었다.
### 순서
1. [[fork]]로 자식 프로세스를 만든다.
2. 자식 프로세스는 새로운 aof 파일를 만들어서 데이터를 작성한다.
3. 부모 프로세스는 증분 aof 파일을 열어서 변경사항을 계속 기록한다.
4. 자식 프로세스가 새 파일에 데이터 작성을 완료하면 부모 프로세스에 시그널을 보낸다.
5. 시그널을 받은 부모 프로세스는 증분 aof의 내용을 새로운 aof에 적용한다.
6. 이전 aof 파일과 증분 aof 파일을 삭제한다.
## 적용 방법
### redis.conf
`appendonly` 옵션을 `yes`로 설정한다.
## 참고
- https://mozi.tistory.com/369?category=1102290
- https://redis.io/docs/management/persistence/
#redis #db