이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
Redis는 캐싱, 대기열 및 실시간 분석에 널리 사용되는 인기 있는 오픈 소스 인 메모리 데이터 구조 저장소입니다. 문자열, 해시, 목록, 세트 및 정렬된 세트를 포함한 광범위한 데이터 구조를 지원하므로 많은 사용 사례에서 다재다능한 도구가 됩니다. 그러나 Redis를 사용할 때의 주요 과제 중 하나는 서버 오류 또는 예기치 않은 종료가 발생한 경우에도 데이터를 항상 사용할 수 있도록 보장하는 것입니다. 이 기사에서는 Redis에서 사용할 수 있는 다양한 데이터 지속성 옵션과 필요할 때 데이터가 항상 존재하도록 구성하는 방법을 살펴봅니다.
Redis는 RDB(Redis Database File) 및 AOF(Append-Only File)의 두 가지 주요 데이터 지속성 옵션을 제공합니다.
RDB 지속성은 Redis에서 가장 일반적으로 사용되는 기본 지속성 옵션입니다. Redis 데이터 세트의 스냅샷을 바이너리 형식의 디스크 파일에 주기적으로 저장하여 작동합니다. 이 스냅샷은 마지막 저장 작업 시 데이터 세트의 상태를 나타냅니다. 기본적으로 Redis는 하나 이상의 키가 변경된 경우 900초(15분)마다, 1000개 이상의 키가 변경된 경우 300초(5분)마다 스냅샷을 저장합니다. SAVE 또는 BGSAVE 명령을 사용하여 수동 저장 작업을 트리거할 수도 있습니다.
RDB 지속성의 장점은 매우 효율적이며 저장 작업 중에 Redis 성능에 영향을 미치지 않는다는 것입니다. 또한 RDB 파일을 다른 위치에 복사하여 Redis 데이터 세트를 쉽게 백업할 수 있습니다. 그러나 단점은 마지막 저장 후 발생한 데이터 변경 사항이 지속되지 않기 때문에 두 저장 작업 사이에 오류가 발생하면 일부 데이터가 손실될 수 있다는 것입니다. 이 위험을 완화하기 위해 디스크 I/O가 증가하고 잠재적으로 Redis 성능이 느려지는 대가로 더 자주 저장하도록 Redis를 구성할 수 있습니다.
AOF 지속성은 Redis에서 수신한 모든 쓰기 작업을 사람이 읽을 수 있는 형식으로 디스크 파일에 기록하여 작동하는 대체 지속성 옵션입니다. 이 로그는 데이터 세트를 재생성하기 위해 재생할 수 있는 일련의 명령을 나타냅니다. 기본적으로 Redis는 새 명령을 수신하면 AOF 파일 끝에 추가하지만 불필요한 명령을 제거하고 크기를 줄이기 위해 주기적으로 AOF 파일을 다시 작성하도록 구성할 수 있습니다.
AOF 지속성의 장점은 모든 쓰기 작업을 기록하므로 RDB 지속성보다 더 나은 내구성과 안정성을 제공하므로 장애 발생 시 더 많은 데이터를 복구할 수 있다는 것입니다. 또한 AOF 파일을 확인하여 Redis 데이터 세트를 쉽게 검사하고 디버그할 수 있습니다. 그러나 단점은 특히 쓰기 속도가 높은 경우 AOF 파일이 시간이 지남에 따라 매우 커질 수 있고 지속적인 디스크 I/O가 Redis 성능에 영향을 미칠 수 있다는 것입니다.
Redis에서 지속성 옵션을 구성하려면 Redis 설치 디렉터리에 있는 redis.conf
파일을 수정해야 합니다. 관련 구성 옵션 중 일부는 다음과 같습니다.
save <seconds> <changes>
: Redis가 데이터 세트를 디스크에 저장해야 하는 시간(초) 및 변경 횟수를 지정합니다. 예를 들어 '900 1 저장'은 하나 이상의 키가 변경된 경우 900초마다 저장하는 것을 의미합니다. Redis가 더 자주 저장하도록 여러 저장 옵션을 지정할 수 있습니다.appendonly yes
: AOF 지속성을 활성화합니다.appendfsync always
: Redis가 AOF 버퍼를 디스크로 플러시하는 빈도를 지정합니다. 옵션은 always
, everysec
및 no
입니다. '항상'은 최고의 내구성을 제공하지만 디스크 I/O가 증가합니다.auto-aof-rewrite-percentage <percentage>
: Redis가 AOF 재작성을 트리거해야 하는 성장 비율을 지정합니다. 기본값은 100%이며, 이는 appendfsync
에서 지정한 값의 두 배가 되면 AOF 파일이 다시 작성됨을 의미합니다.auto-aof-rewrite-min-size <bytes>
: 다시 쓰기를 트리거하기 전에 AOF 파일의 최소 크기를 지정합니다.Redis에서 지속성 옵션을 구성하는 것 외에도 데이터를 항상 사용할 수 있도록 하기 위해 따를 수 있는 다른 모범 사례가 있습니다. 다음은 그 중 일부입니다.
이 기사에서는 Redis에서 사용할 수 있는 다양한 데이터 지속성 옵션과 데이터를 항상 사용할 수 있도록 구성하는 방법을 살펴보았습니다. 또한 Redis 클러스터 사용, 백업 전략 및 Redis 성능 모니터링을 포함하여 데이터 지속성을 보장하기 위한 몇 가지 모범 사례에 대해서도 논의했습니다. 이러한 지침을 따르면 장애나 예기치 않은 이벤트가 발생하더라도 Redis 데이터 세트가 필요할 때 항상 존재하도록 할 수 있습니다.