본문 바로가기
IT

레디스(Redis) AOF(Append Only File)을 통해 데이터를 유지하는 방법

by developer's warehouse 2024. 5. 3.

이 글에서는 Redis의 데이터 복구를 책임지는 AOF에 대해서 간략하게 알아보고, 사용법과 켜는 방법을 알려드리겠습니다.

레디스(Redis) AOF(Append Only File)을 통해 데이터를 유지하는 방법 썸네일

Redis의 AOF(Append Only File) 파일이란?

Redis의 AOF(Append Only File) 파일은 데이터의 내구성을 보장하기 위한 방법 중 하나입니다. AOF는 Redis에서 발생하는 모든 쓰기 작업(Write Operation)을 로그 형태로 기록합니다. 이렇게 하면, Redis 서버가 예기치 않게 종료되더라도 AOF 파일을 통해 데이터를 복구할 수 있습니다.

AOF 파일의 주요 특징은 다음과 같습니다.

  • 데이터 복구: 서버 재시작 시 AOF 파일을 읽어 데이터를 복구합니다.
  • 데이터 안정성: 모든 쓰기 명령을 로그로 기록하여 데이터 손실을 최소화합니다.
  • Log Rewriting: AOF 파일의 크기가 너무 커지지 않도록, 필요할 때 로그를 재작성하여 최소한의 로그만 남깁니다.
  • Multi Part AOF: Redis 7.0부터 AOF 파일이 단일 파일이 아닌 여러 파일로 관리됩니다. 기본 파일(base file)에는 마지막 재작성 시의 스냅샷을 저장하고, 증분 파일(incremental file)에는 그 이후의 변경사항을 기록합니다.

 

AOF 파일은 Redis의 데이터 영속성을 보장하는 중요한 기능으로, 데이터의 안정성과 복구 가능성을 높이는 데 큰 역할을 합니다. AOF 방식은 RDB(Redis Database) 스냅샷 방식과 비교하여 더 높은 데이터 안정성을 제공하지만, 디스크에 더 많은 쓰기 작업을 수행하므로 성능에 영향을 줄 수 있습니다. 따라서 사용 환경과 요구 사항에 따라 AOF와 RDB 스냅샷 중 적절한 방식을 선택하는 것이 중요합니다

redis의 AOF(append only file) 로깅 켜는 방법

1. redis-cli로 설정하기

redis-cli로 접속 후 CONFIG SET appendonly yes 명령을 수행후에 info persistence로 확인해 볼 수 있습니다 .

" aof_enabled:1 "이 나타나면 aof가 켜져있는 것입니다.

~$ redis-cli
127.0.0.1:6379> CONFIG SET appendonly yes
OK
127.0.0.1:6379> info persistence
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1714027565
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:30
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:1781760
aof_enabled:1
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:33
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:1232896
module_fork_in_progress:0
module_fork_last_cow_size:0
aof_current_size:870480982
aof_base_size:779917343
aof_pending_rewrite:0
aof_buffer_length:0
aof_rewrite_buffer_length:0
aof_pending_bio_fsync:0
aof_delayed_fsync:0
127.0.0.1:6379> quit

 

실제로 이 상태에서 동작을 확인하기 위해서는 aof 파일의 크기가 변하는 지 보면 됩니다.

우분투에서 기본적으로 redis의 aof 파일이 유지되는 디렉토리는 /var/lib/redis/입니다.

:~$ sudo ls -l  /var/lib/redis/
합계 2812296
-rw-rw---- 1 redis redis 1755247806  4월 25 18:54 appendonly.aof
-rw-rw---- 1 redis redis 1124525305  4월 25 19:10 dump.rdb
-rw-rw---- 1 redis redis         93  2월 14 10:58 temp-729.rdb

 

2. redis.conf 파일로 설정하기

Redis의 AOF(Append Only File) 파일은 기본적으로 Redis 서버의 작업 디렉토리에 위치하며, appendonly yes로 설정하면 됩니다. 파일명은 appendonly.aof로 설정됩니다. 파일의 위치나 이름을 변경하고 싶다면, Redis 구성 파일인 redis.conf를 수정해야 합니다.

예를 들어, AOF 파일의 위치를 변경하고자 할 때는 다음과 같은 단계를 따릅니다.

 

1. redis.conf 파일을 열어줍니다.

우분투(Ubuntu) 시스템에서 redis.conf 파일은 일반적으로 /etc/redis/ 디렉토리에 위치합니다.

2. AOF 관련 설정을 찾아서 수정합니다.

예를 들어
appendonly yes
dir /path/to/your/directory
appendfilename your-aof-filename.aof

변경 사항을 저장하고 Redis 서버를 재시작합니다.
이렇게 하면, AOF 파일의 위치와 이름을 원하는 대로 설정할 수 있습니다. 또한, AOF 파일은 Redis의 모든 쓰기 작업을 기록하는 로그 파일로, 데이터의 안정성을 높이기 위해 사용됩니다.

 

3. 변경 사항을 저장하고 Redis 서버를 재시작합니다.

 

오늘은 레디스 데이터베이스에서 데이터 손실을 방지하고 지속성을 유지하기 위해서 설정해야하는 AOF 파일을 켜는 방법과 위치 등을 알아보았습니다.

 

facebook twitter kakaoTalk kakaostory naver band shareLink