카테고리 없음

Redis의 영속성과 디스크 스와핑 - 왜 같은 '디스크 저장'인데 다른가?

코코무 2025. 4. 2. 10:08

Redis에 대해 공부하다가 헷갈리는 부분을 정리해본다.

 

겉으로 보면 Redis의 RDB, AOF도 디스크에 데이터를 저장하고,  
운영체제가 RAM이 부족할 때 하는 디스크 스와핑도 데이터를 디스크로 보내는 것처럼 보인다. 

둘 다 임시 저장소이면서, 결국 디스크에 의존하는 것이다.

 

'그럼 Redis의 영속성과 디스크 스와핑은 같은 맥락에서 일어나는 일 아닌가?'

'Redis가 디스크에 데이터를 저장하는 것도 일종의 스와핑인가?'

'결국 RAM을 넘는 데이터가 디스크로 넘어간다는 점에서 같은 원리 아닌가?'


하지만 이 둘은 전혀 다른 층위에서 일어나는 일이다.

 

비행기가 땅에 닿는다고 해서 자동차랑 같은 것은 아니다.
그래도 둘 다 바퀴로 움직이니까 겉보기에는 비슷해 보인다.


 

 

Redis의 RDB/AOF는 사용자 애플리케이션 레벨에서 수행되는 "영속성 기능"이다.  
이는 의도적으로, 계획적으로 데이터를 저장하기 위한 메커니즘이며,  
Redis 프로세스가 직접 파일을 생성하고, 설정에 따라 주기적으로 또는 실시간으로 기록한다.

반면, 디스크 스와핑은 운영체제(OS) 차원에서 일어나는 일이다.  
RAM이 부족해지면 OS는 특정 데이터를 디스크로 임시로 밀어낸다.  
이는 Redis의 제어 밖에 있는 일이며, 저장을 위한 게 아니라 RAM 부족을 견디기 위한 응급 대응이다.

같은 디스크를 쓴다고 해서 같은 목적이 아니며,
Redis의 영속성은 데이터를 "보존"하기 위함이고,  
스와핑은 데이터를 "버티기" 위해 잠깐 빼놓는 것이다.

요약하자면,  
Redis는 데이터를 살리기 위해 디스크를 쓰는 것,  
운영체제는 살기 위해 디스크에 데이터를 피신시키는 것이다.