Redis는 데이터를 메모리 뿐만 아니라 File로도 남겨서 메모리의 데이터가 사라졌을 때 복구할 수 있는 방법을 제공합니다.
주기적으로 해당 시점의 snapshot을 남깁니다.
최소 5분 이상의 간격으로 세팅하는 것을 권장합니다. 전체 데이터에 대한 스냅샷을 남기기 때문입니다.
성능 손해를 최소화 할 수 있습니다.
1시간에 한 번이라면, 1시간 동안은 성능에 아무런 영향이 없겠죠.
backup파일이 AOF에 비해 작고 복구가 쉽고 빠릅니다.
데이터가 클수록, CPU 성능이 안좋을수록 영향이 큽니다.
몇 ms~ 1초 정도 소요됩니다.
잠깐이라고 생각할 수 있으나 레디스를 쓰는 목적은 ms 단위의 응답 시간이 필요할 때죠. 이 기준으로 생각하면 오래 걸린다고 볼 수 있습니다.
만약 주기가 5분이라면 5분에 한 번씩 병목 구간이 생깁니다.
모든 write operation (데이터 추가, 삭제 등등) 마다 Log를 쌓아둡니다.
SET user:1 "Alice"
LPUSH users "user:1"
DEL temp:session
Logging되는 데이터 자체가 redis protocol과 일치해서 AOF로부터의 복구가 쉽습니다.