230513 TIL #84 Redis 백업 방식 / AOF / RDB

김춘복·2023년 5월 13일
0

TIL : Today I Learned

목록 보기
84/543
post-custom-banner

230513 Today I Learned

실전 프로젝트가 모두 종료되고 지원 주차 첫날. 어제 받았던 질문 중에 Redis에 장애가 생겨 데이터가 날아갈 상황이면 어떻게 대처할꺼냐는 질문을 대답을 못했다. 그에 대한 대처로 Redis의 백업방식에 대해 알아보려 한다.


Redis 공식 문서

Redis 백업 방식

  • 인메모리 데이터 저장소는 휘발성 때문에 종료 시 데이터가 유실된다. 하지만 Redis는 AOF와 RDB라는 방식으로 백업을 하여 데이터 영속성을 가진다.

RDB(Redis DataBase file)

  • 일정 시간이나 특정 수의 쓰기작업이 이루어진 후의 특정 시점의 메모리에 있는 전체 데이터를 디스크에 바이너리 형식의 스냅샷으로 저장한다.

  • 백업과 복구에 유용하며 AOF보다 파일 사이즈가 작고 로딩속도가 빠르다.

  • 마지막 스냅샷 이후의 데이터는 유실될 수 있다.

  • Redis 종료 전 자동으로 스냅샷을 저장한다. 재시작시 RDB로 복원


AOF(Append Only File)

  • 모든 쓰기 명령(조회 제외)에 대한 로그를 남긴다. Redis 재시작 시 실행되어 메모리 상태를 복구한다.

  • 모든 쓰기 작업을 기록하므로 RDB에 비해 안전하다.

  • 하지만 계속 추가되며 기록되기 때문에 파일 크기가 계속 커지고 복구시간이 더 길 수 있다.

  • AOF가 활성화 되었다면 RDB파일을 읽어오지 않고 AOF 파일을 읽어온다.

  • Flushall로 데이터를 다 날려도 aof 파일에서 그 명령어만 지우면 복원이 가능하다.

  • 매 명령마다, 매 초마다, 특정 시점마다 정해서 AOF에 기록할 수 있따.

  • AOF 파일이 특정 시점에 특정 사이즈를 넘어가면 현재 메모리의 정보로 다시 AOF에 써서 사이즈를 줄일 수 있다.(ReWrite)

  • text 파일이므로 edit이 가능하다.


  • AOF와 RDB를 동시에 같이 쓸 수도 있다.

  • 데이터 손실을 막는 목적에서는 AOF가 좋지만, 성능적으로는 RDS가 더 좋다.

profile
Backend Dev / Data Engineer
post-custom-banner

0개의 댓글