
그럼 Redis가 영속성에 안좋느냐?
방식을 제공하긴함. RDB/AOF RDB와 AOF
RDB: Copy On Write 방식을 취함
→ 부모 프로세스와 비교 뒤 변경사항을 자신의 것으로 함
Redis 의 메모리 사용량이 폭증함
AOF: Buffer에 데이터를 쓰고 데이터 변경 이후 Disk에 쓰는 방식
장애로 Down 후 Failback 했을 때 해당 데이터는 Disk에 쓰여지지 않았기에 복구할 수 없음
설정에 따라 주기를 선택할 수 있지만 빠를수록 Disk I/O많아짐
++ 추가
이를 위해 redis의 cluster /sentinel 을 사용할 수 있지만 (우선 데이터를 slave에 보내고 aof에 쓰기 때문)
redis 는 async 방식으로 replicaiton 하며 최초 sync 이후 모든 write 명령을 전송하는데 이때 slave는 데이터를 받았는지 전송 결과를 ack 하지 않기 때문에 데이터 gap은 분명 존재할 수 있음