언어 & 라이브러리/레디스

[레디스] 메모리 관리 기법 RDB vs AOF 차이

illlilillil 2022. 3. 17. 16:18

레디스 노드 로그를 분석하다가 RDB와 AOF라는 메모리 관리 방식에 대해 알게 되어 궁금증이 생겨 찾아보게 되었습니다.

데이터의 영속성을 위한 두 가지 방식입니다.

RDB(Redis DataBase)

  • 스냅샷과 비슷한 역할을 합니다.
  • 특정 시점의 메모리 데이터를 전부 바이너리 파일로 저장합니다.
  • AOF 파일보다 사이즈가 작아 로딩이 빠릅니다.
  • 저장 방법은 redis.conf의 save로 설정합니다. save 10 1: 10초간 1번 이상 변경 시 저장 여러 개도 지정해 하나라도 만족하면 수행합니다.
  • 메모리를 많이 사용합니다.
  • 대규모 데이터에 적합합니다.

AOF(Append Only File)

  • appendonly.aof에 저장됩니다.
  • INSERT,UPDATE,DELETE 명령 수행 시마다 기록됩니다.
  • append 방식으로 추가되며 기록됩니다. 특정 시점에 데이터 전체를 다시 쓸 수 있습니다.
  • 계속 추가하기 때문에 파일 사이즈가 무한정으로 커질 수 있습니다. 사이즈가 너무 커지면 rewrite 기능으로 최종 데이터만 기록합니다.
  • text 파일이므로 사용자가 직접 수정해 손실없이 복구할 수 있다.
  • redis.conf에서 appendonly로 설정 가능
  • DB 복구는 AOF가 우선순위에 앞서 있습니다.