[Redis] Redis의 백업과 장애 복구: AOF

기훈·2024년 4월 14일

Redis

목록 보기
9/14

AOF

  • 모든 쓰기 요청에 대한 로그를 저장

  • 재시작 시 AOF에 기록된 모든 동작을 재수행해서 데이터를 복구

장점

  • 모든 변경사항이 기록되므로 RDB 방식 대비 안정적으로 데이터 백업 가능

  • append-only 방식으로 백업 파일이 손상될 위험이 적음

  • 실제 수행된 명령어가 저장되어 있으므로 사람이 보고 이해할 수 있고 수정도 가능

단점

  • RDB 방식보다 파일 사이즈가 커짐

  • RDB 방식 대비 백업&복구 속도가 느림(백업 성능은 fsync 정책에 따라 조절 가능)

fstnc 정책

  • fstnc() 호출은 os에게 데이터를 디스크에 쓰도록 함

  • 옵션 및 설정
    alsways: 새로운 커맨드가 추가될 때마다 수행. 가장 안전하지만 가장 느림
    eveysec: 1초마다 수행. 성능은 RDB 수준에 근접
    no: OS에 맡김. 가장 빠르지만 . 덜안전한 방법(커널마다 수행시간이 다를 수 있음)

AOF관련 개념

  • Log rewriting: 최종 상태를 만들기 위한 최소한의 로그만 남기기 위해 일부로 새로 씀
    (1개의 key를 100번 수정해도 최종 상태는 1개이므로 set 1개로 대체 가능)

  • 7.0부터 AOF가 단일 파일로 저장되지 않음
    base fie: 마지막 rewirte 스냅샷을 저장
    incremental file: 마지막으로 base file이 생성된 이후의 변경사항이 쌓임
    manifast file: 파일들을 관리하기 위한 메타 데이터를 저장

실행

  1. 도커 컨테아너 실행

    docker run -v $(pwd)/redis.conf:/redis.conf --name my-redis-aof redis  redis-server /redis.conf
  2. redis.conf 파일의 save ""설정
    내가 로컬에서 설정을 진행했을 때에는 save를 ""로 해주지 않으면 AOF가 정상 작동되지 않았다.

  3. incremental file 확인

0개의 댓글