Redis 데이터 백업, 디스크 저장 방법 ( AOF, RDB, 스냅샷 )

2023. 3. 21. 22:01it

반응형

 

0. 서론

 
Redis는 기본적으로 메모리 내에 데이터를 저장하는 인메모리 데이터베이스 이다.
근데, 메모리에만 데이터를 저장하니, 데이터가 비정상 종료 및 재부팅 시 날라가는 특징이 있다.
 
그래서 redis에서는 메모리에 저장된 데이터를 디스크로 저장하는 방법을 제공한다.
 

1. 방법

RDB(Redis DataBase) : Redis 데이터베이스의 스냅샷을 저장하는 방식이 있다.

스냅샷 파일의 이름은 "dump.rdb"로 고정되고, 대규모 데이터를 다룰 때 매우 효율적이다.

스냅샷은 Redis 서버의 메모리 내용을 그대로 디스크에 저장해, 빠르고 경제적인 방법이다.

하지만 스냅샷 주기를 길게 설정하면 데이터 손실 가능성이 높아지며, 짧게 설정하면 성능에 영향을 미친다.


AOF(Append Only File) : Redis의 모든 쓰기 작업을 기록하는 로그 파일 저장 방식이다.

Redis 서버는 모든 쓰기 작업을 AOF 파일에 기록하고, 서버가 시작될 때 AOF 파일을 읽어 메모리에 로드한다.

AOF 방식은 스냅샷 방식보다는 느리지만 데이터의 안정성이 높다.

AOF 파일이 크기 때문에 Redis 서버가 부하가 높을 수 있지만, 모든 쓰기 작업을 기록하므로 데이터의 안정성이 높다.
 
 

728x90

 

2. AOF(Append Only File) 설정 방법

2-1. redis 구성 파일을 연다.

sudo vi /etc/redis/redis.conf

 

2-2. AOF 관련 경로 설정을 변경

# Append only mode is disabled by default.
appendonly yes
반응형

appendonly no -&gt appendonly yes : AOF를 사용하도록 설정
 

2-3. AOF 관련 파일 경로 설정을 변경

# The name of the append only file (default: "appendonly.aof")
# appendfilename appendonly.aof

# Specify a specific AOF file (in the data directory) for persistence.
# Note that the filename must always end in .aof

appendfilename appendonly.aof : AOF 파일의 이름을 변경하고 싶은 경우 사용
 

2-4. redis 재시작

sudo systemctl restart redis

 

3. RDB

3-1.  redis 구성 파일

sudo vi /etc/redis/redis.conf

 

3-2. redis 설정 변경

save 900 1

이 줄은 900초(15분)마다 데이터베이스가 변경되었을 때 RDB 스냅샷을 저장
 

save 60 10

60초마다 데이터베이스가 변경되었을 때 RDB 스냅샷을 저장하고 10개의 변경 되면 저장
 

3-3. RDB 파일이 저장되는 경로

dir /var/lib/redis

 

3-4. redis 재시작

sudo systemctl restart redis-server

 
 
이렇게 설정을 하면, 메모리 데이터를 디스크로 저장이 가능합니다.
 
 

반응형