본문 바로가기
Linux/Redis

redis RDB와 AOF의 차이

by 준섭이 2023. 12. 26.
728x90

### RDB (snapshotting) 방식

순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨 담는 방식이다.

SAVE와 BGSAVE 두가지 방식이 있는데, SAVE는 blocking 방식으로 순간적으로 redis 의 모든 동작을 정지시키고, 그 때의 snapshot 을 disk에 저장한다.

BGSAVE는 non-blocking 방식으로 별도의 process를 띄운 후, 명령어 수행 당시의 메모리 snapshot를 disk에 저장하며, 저장 순간에 redis 동작을 멈추지 않고 정상적으로 동작한다.

 

  • 장점 : 메모리의 snapshot을 그대로 뜬 것이기 때문에, 서버 restart 시 snapshot만 load하면 되므로 restart 시간이 빠르다.
  • 단점 : snapshot을 주출하는데 시간이 오래 걸리며, snapshot 추출된 후 서버가 down 되면 snapshot 주출 이후 데이터는 유실된다. (backup시점의 데이터만 유지 된다는 이야기)

### AOF (Append On File) 방식

AOF 방식은 redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태이다. 서버가 재 시작될 때,

기록된 write/update operation을 순차적으로 재 실행하여 데이터를 복구한다. operation이 발생할 때 마다 매번 기록하기 때문에, RDB 방식과는 달리 특정 시점이 아니라, 항상 현재 시점까지의 로그를 기록할 수 있으며, 기본적으로 non-blocking call 이다.

 

  • 장점 : Log File에 대해서 append만 하기 때문에, log write 속도가 빠르며, 어느 시점에 down되더라도 데이터 유실이 발생하지 않는다.
  • 단점 : wirte/update operation에 대해서 log를 남기기 때문에 로그 데이터 양이 RDB방식에 비해서 과대하게 크며, 복구 시 저장된 write/update operation 다시 reply 하기 때문에 restart 속도가 느리다.

 

'Linux > Redis' 카테고리의 다른 글

redis rdb to aof  (0) 2023.12.27
redis-cli 명령어  (0) 2023.12.26
redis 실행  (0) 2023.12.26
redis 설치 시 에러  (1) 2023.12.26
redis 설치  (0) 2023.12.26