[redis] data persistence - hybrid

cochocho·2026년 5월 4일

hybrid

hybrid는 앞서 얘기했듯 rdb snapshot 에 aof를 혼합하는 형태이다
rdb를 통해 빠르게 메모리에 로드할 수 있다는 장점,
aof를 통해 데이터 손실을 줄일 수 있다는 장점을
가져갈 수 있다
순수 aof보다 크기가 작다는 장점이 있다

구조는 rdb snapshot을 통해 앞을 구성하고 나머지 최신 명령은 aof 로 저장하는 것이다

hybrid에서의 재작성

  • 부모 : aof file (재작성 실패 대비 원본 aof) + 재작성 버퍼(메모리에 존재하는 임시 버퍼로 자식이 재작성 시작한 시점 이후 명령들만 모아 둠)
  • 자식 : 메모리 상태 스캔 (모든 키와 값을 rdb로 파일에 씀)
  • rdb 를 다 쓴 뒤 부모에게 자식이 보고
  • 부모 : 재작성 버퍼에 있는 명령을 자식에게 전달
  • 자식 : aof 형식으로 파일 끝에 추가
  • 원본을 자식이 만든 파일로 교체

단점

  • 파일 구조 복잡
  • 4.0 미만 버전과 호환 x
  • aof 와 동일한 메모리 오버헤드가 있음
    물론 rdb snapshot도 cow로 인한 오버헤드는 발생하지만 aof, hybrid 만큼은 아님

0개의 댓글