[개발 일기] 2025.03.14 - 인메모리는 휘발성이라매

2025. 3. 14. 13:48·개발 일기

💡 개요

보통 인메모리는 휘발성이라는 문제를 가지고 있다고 배운다.

 

 

물론 나 또한 그렇다.

 

 

그런데 Redis에 TTL을 따로 설정하지 않은 데이터를 저장하고 맥북을 껐다가 켜도 데이터는 잘 저장되어 있다.

 

 

왜 이럴까?

 

 

 

📕 Redis의 휘발성

Redis는 대표적인 인메모리 DB이기도 하지만 데이터를 디스크에 저장하는 기능 또한 제공한다.

 

 

..?

 

 

뭔가 이상하다.. 메모리를 사용하지만 디스크도 사용한다..?

 

 

맞다. Redis는 하이브리드 형태의 데이터베이스이기 때문에 메모리와 디스크 모두 사용한다.

 

 

일반적으로 Redis에 데이터를 저장하거나 조회할 땐 메모리에 접근한다.

 

 

하지만 Redis는 휘발성이라는 문제를 극복하기 위해 디스크를 함께 사용하는 지속성(Persistence) 기능을 포함하고 있다.

 

 

Redis의 지속성 관련 기술은 Redis 스냅샷과 AOF이다.

 

 

 

🛠️ Redis 스냅샷

 

스냅샷이란 데이터의 특정 시점의 데이터베이스 상태를 파일 형태로 변환한 것이다.

 

 

Redis는 redis.conf 파일을 읽어 스냅샷 생성 주기를 설정할 수 있다.

 

 

현재 Redis의 스냅샷 생성 주기를 알고싶다면 redis-cli에 접속한 후, 아래 명령어를 입력하면 된다.

 

CONFIG GET save

 

[결과]
1) "save"
2) "3600 1 300 100 60 10000"

 

 

위 로그의 의미는 다음과 같다.

 

  • 3600 1 → 1시간(3600초) 동안 최소 1개 이상의 키 변경 발생 시 저장

  • 300 100 → 5분(300초) 동안 100개 이상의 키 변경 발생 시 저장

  • 60 10000 → 1분(60초) 동안 10,000개 이상의 키 변경 발생 시 저장

 

 

그리고 이 스냅샷 파일은 Redis의 dir 내부에 저장된다.

 

 

위의 dump.rdb가 스냅샷이고, 바이너리 형태로 저장되고 있다.

 

 

 

🛠️ AOF (Append Only File)

 

AOF란 Redis에 데이터가 저장될 경우 AOF 파일에 해당 작업을 모두 기록하며, 이후 Redis가 종료되더라도 AOF 파일을 읽은 후 데이터를 복원할 수 있다.

 

 

Redis에 AOF가 설정되어 있는지 확인하려면 redis-cli에 접속한 후 아래 명령어를 입력하면 된다.

 

CONFIG GET appendonly

 

 

 

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.03.16 - Session.invalidate()  (0) 2025.03.16
[개발 일기] 2025.03.15 - LATERAL JOIN  (0) 2025.03.15
[개발 일기] 2025.03.13 - @BeforeAll  (0) 2025.03.13
[개발 일기] 2025.03.12 - filter에서 발생하는 예외  (0) 2025.03.12
[개발 일기] 2025.03.11 - compareTo()  (0) 2025.03.11
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.03.16 - Session.invalidate()
  • [개발 일기] 2025.03.15 - LATERAL JOIN
  • [개발 일기] 2025.03.13 - @BeforeAll
  • [개발 일기] 2025.03.12 - filter에서 발생하는 예외
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.03.14 - 인메모리는 휘발성이라매
상단으로

티스토리툴바