## 개요 - 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