[Redis] Redis 백업/복구 및 Redis 실행방법

배지원·2023년 10월 31일

Redis

목록 보기
4/5

1. RDB(Redis Database)를 사용한 백업

장점

  • 특정 시점마다 백업(스냅샷) 파일에 데이터 저장
  • 재시작 시 RDB 파일이 있으면 읽어서 복구
  • fork를 통해 백업하므로 서비스 중인 프로세서는 성능에 영향 없음

단점

  • 스냅샷을 저장하는 시점 사이에 데이터 변경사항은 유실될 수 있음
  • fork를 사용하기 때문에 시간이 오래 걸릴 수 있음
  • 데이터 무결성이나 정합성에 대한 요구가 크지 않을 경우 사용 가능

(1) 동작 과정

  • RDB를 하기 위해서는 설정이 필요한데 설정파일이 없어도 기본값으로 RDB를 활성화되어 있음
  • 하지만 쉽게 자신이 원하는 값대로 변경할려면 설정파일 템플릿을 받아서 사용하는게 좋음(주석으로 설명 써있음)

https://redis.io/docs/management/config/

저장 주기 설정

  • 다운받은 redis.conf 파일에서 설정변경해줌 (파일 경로는 C:\Users\my 경로안에 넣어줌)
  • redis.conf 파일에서 스냅샷 설정 변경
  • 60초마다 10개 이상의 변경이 있을 때 수행
save 60 10 

Redis 실행시 설정 파일 적용

  • 자신이 설정한 설정파일을 Redis를 실행할때 적용시켜서 실행해주기 위해서는 docker start [Redis 이름]처럼 기존 시작 방식과 다르게 실행시 설정 파일을 적용시켜줘야 한다.

  • docker run 사용 시 -v 옵션을 이용해 디렉토리 또는 파일을 마운팅(연결)할 수 있음

  • redis 이미지 실행 시 redis-server에 직접 redis 설정파일 경로 지정 가능

docker run -v /my/redis.conf:/redis.conf --name [Redis 이름] redis redis-server /redis.conf
--------------
-v /my/redis.conf:/redis.conf : my디렉토리 안에 있는 redis.conf파일을 컨테이너 안에 루트디렉토리 바로 아래 redis.conf위치에 마운팅함
-v : 마운팅
/my/redis.conf : 호스트 my디렉토리 안에 redis.conf파일
:/redis.conf : 컨테이너 루트 디렉토리 아래에 redis.conf 위치

--name my-redis redis redis-server /redis.conf : 컨테이너 이름을 지정하고 Redis이미지를 실행하고 Redis서버가 실행될때 redis.conf 파일을 통해 실행되도록 함
--name my-redis redis: Redis 이미지 이름 지정
redis-server/redis.conf : 설정 파일을 읽어 Redis 서버가 실행되도록 함

※ /my/redis.conf 경로는 위에서 redis.conf를 설치한 경로에서 하면됨. 즉, Window일때는 C:\Users\my 위치로 이동한 후 /redis.conf만 입력해도 됨.

이처럼 내가 직접 설정한 파일을 마운팅 받아서 Redis를 실행하게 되면 내가 설정한 값 만큼 스냅샷을 하게 되어 자동 백업이 된다.

스냅샷을 저장할 파일 이름

dbfilename dump.rdb

수동으로 스냅샷 저장

  • 스냅샷을 설정하면 해당 값에 도달해야 자동저장이 되는데 만약 그 전에 직접 저장하고 싶다면 아래의 명령어를 사용하면 된다.
  • 싫무에서는 수동저장을 많이 사용함
bgsave


1. AOF(Append Only File)를 사용한 백업

  • 모든 쓰기 요청에 대한 로그를 저장
  • 재시작 시 AOF에 기록된 모든 동작을 재수행해서 데이터를 복구

fsync 정책(appendfsync 설정 값)

  • fsync( ) 호출은 OS에게 데이터를 디스크에 쓰도록 함
    - always : 새로운 커맨드가 추가될 때마다 수행. 가장 안전하지만 가장 느림
    • everysec : 1초마다 수행. 성능은 RDBB 수준
    • no : OS에 맡김. 가장 빠르지만 덜 안전함

장점

  • 모든 변경사항이 기록되므로 RDB 방식 대비 안정적으로 데이터 백업 가능
  • AOF 파일은 append-only 방식이므로 백업 파일이 손상될 위험이 적다
  • 실제 수행된 명령어가 저장되어 있으므로 사람이 보고 이해할 수 있고 수정도 가능

단점

  • RDB 방식보다 파일 사이즈가 큼
  • RDB 방식 대비 백업 & 복구 속도가 느림(용량이 크기 때문)
profile
Web Developer

0개의 댓글