Redis의 데이터 영속성

장민근·2025년 1월 23일

Redis

목록 보기
10/14

Redis의 데이터 영속성

Redis에서 데이터 영속성이란?

Redis는 인메모리 기반 데이터베이스로, 서버가 다운되면 모든 데이터가 휘발된다. 이러한 단점을 보완하기 위해 데이터를 디스크에 저장하여 영속성을 보장하는 방법을 제공하며, 대표적으로 AOF(Append Only File)와 RDB(Redis DataBase) 두 가지 방식을 지원한다.

1.AOF ( Append Only File )

AOF는 서버로 들어오는 각 요청을 커맨드 형태로 모두 저장하는 방식이다. 이를 통해 데이터의 영속성을 보장한다. 또한, AOF와 RDB 방식을 혼합하여 사용할 경우, Redis는 기본적으로 AOF 방식을 우선적으로 사용한다. 이는 Redis가 단순한 캐시 툴뿐만 아니라 데이터베이스의 역할도 수행할 수 있기 때문에, 데이터를 더욱 중시하기 때문이다.

2.RDB (Redis DataBase )

RDB는 일정 시간마다 Redis의 스냅샷을 찍어 디스크에 저장하는 방식이다. 예를 들어, 5분마다 100개의 변경이 발생하면 스냅샷을 찍어 디스크에 저장하도록 설정할 수 있다. 데이터는 기본적으로 바이너리 형태로 저장되므로 사람이 직접 읽을 수는 없다. RDB는 특정 주기마다 스냅샷을 찍기 때문에, 해당 주기 사이에 문제가 발생하면 그동안의 데이터 유실이 발생할 수 있다. 또한, 바이너리 형태로 저장되므로 컴퓨터가 읽는 속도는 빠르지만, 대규모 데이터의 경우 순간적인 지연이 발생할 수 있다.

3.어떤 방식이 더 좋을까?

AOF는 클라이언트의 각 요청마다 모든 데이터를 저장하므로 데이터 영속성이 보장된다. 그러나 단순 캐싱 용도로 사용되거나, 데이터 유실이 큰 문제가 되지 않는 경우에는 AOF를 반드시 사용할 필요는 없다. 서비스의 특성과 요구사항에 따라 적절한 방식을 선택하는 것이 중요하다.

4. 백업 전략을 사용할 때 주의할 점

  • 충분한 메모리 확보: RDB 스냅샷 생성 시 추가적인 메모리 사용을 고려하여 시스템에 충분한 메모리를 확보한다. 이는 백업 과정에서의 메모리 부족으로 인한 실패를 방지하고 시스템 안정성을 유지하는 데 중요하다

  • 백업 주기 최적화: 데이터 변경 빈도와 중요도에 따라 RDB 스냅샷 생성 주기를 최적화한다. 변경이 잦은 시스템에서는 더 빈번한 스냅샷이 필요할 수 있으며, 이를 통해 데이터 손실 위험을 최소화할 수 있다. ( 대규모 데이터의 경우 빈번한 스냅샷은 병목 현상 및 메모리 부족을 초래할 수 있으니 정말 주의해야한다. )

정리

참고 사이트

Redis 데이터 영속성 관련 블로그 포스팅

profile
안녕하세요!! 백엔드 개발자를 희망하는 취준생입니다 !!

0개의 댓글