DB

[Redis] 백업과 장애 복구 (RDB 방식)

Raconer 2024. 3. 7. 23:34
728x90

RDB (Redis Database)를 사용한 백업

  • 특정 시점의 스냅샷으로 데이터 저장
  • 재시작 시 RDB 파일이 있으면 읽어서 복구

장점

  • 작은 파일 사이즈백업 파일 관리가 용이(원격지 백업, 버전 관리 등)
  • fork를 이용해 백업하므로 서비스 중인 프로세스는 성능에 영향 없음
  • 데이터 스냅샷 방식이므로 빠른 복구가능

단점

  • 스냅샷을 저장하는 시점 사이의 데이터를 변경사항은 유실될 수 있음
    • 데이터 저장 이후 다시 데이터를 저장하기 전에 오류
  • fork를 이용하기 때문에 시간이 오래 걸릴 수 있고, CPU와 메모리 자원을 많이 소모
  • 데이터 무결성이나 정합성에 대한 요구가 크지 않은 경우 사용 가능
    • (마지막 백업 시 에러 발생 등의 문제)

 RDB 설정

# 저장 주기 설졍(ex: 60초 마다 10개 이상의 변경이 있을때 수행)
> save 60 10
# 스냅샷을 저장할 파일 이름
> dbfilename dump.rdb
# 수동으로 스냅샷 저장
> bgsave

Docker를 사용해 Redis 설정 파일 적용하기

  • docker run 사용시 -v 옵션을 이용해 디렉토리 또는 파일을 마운팅 할 수 있음
  • redis 이미지 실행시 redis-server에 직접 redis파일 경로 지정 가능

Docker 컨테이너 실행 시 설정 파일 적용하기

docker run -v my/redis.conf:/redis.conf --name my-redis redis redis-server /redis.conf

 

Redis 설정 파일 편집 설정

### SNAPSHOTTING ### 항목에서 설정
# SAVE 3600 1 300 100 60 10000
SAVE 60 10 # 60초 동안 10개의 변경 사항이 있으면 저장

# 이때 Docker Redis 실행 코드
docker run -v ${pwd}/redis.conf:/redis.conf --name my-redis-with-config redis redis-server /redis.conf

 

명령어로 SAVE하기

 

# bgsave : 비동기 방식으로 저장 된다.
# bgsave [schedule] 시간을 정할수 있다.
# 수동으로 bgsave함으로서 더욱 안전하게 데이터를 보호 할수있다.

bgsave
728x90

'DB' 카테고리의 다른 글

[Redis] 레디스의 복제  (0) 2024.03.10
[Redis] 백업과 장애 복구 (AOF 방식)  (0) 2024.03.10
[Redis] Pub/Sub을 이용한 채팅방 구현  (0) 2024.03.01
[Redis]리더 보드란?  (0) 2024.03.01
[Redis] Spring Boot Redis 기본 설정  (0) 2024.02.24