이 기사에서는 RDB 스냅 샷 및 AOF를 사용한 Redis Persistence를 설명합니다. 구성, 트레이드 오프 (속도 대 안전), 최적화 전략 (워크로드 분석, 하드웨어, 튜닝) 및 주파수 권장 사항에 대해 자세히 설명합니다. 선택 또는 결합
Redis는 RDB (Redis Database) 스냅 샷과 AOF (파일 만 추가)의 두 가지 기본 지속 메커니즘을 제공합니다. 독립적으로 구성하거나 하나만 사용할 수 있습니다. 구성 방법은 다음과 같습니다.
RDB 구성 : RDB는 REDIS 데이터의 포인트-타임 스냅 샷을 만듭니다. redis.conf
파일의 save
지시문을 사용하여 구성됩니다. 이 지침은 스냅 샷을 만들어야하는 조건을 지정합니다. 예를 들어:
<code>save 900 1 # Save a snapshot after 900 seconds (15 minutes) if at least one key changed. save 300 10 # Save a snapshot after 300 seconds (5 minutes) if at least 10 keys changed. save 60 10000 # Save a snapshot after 60 seconds (1 minute) if at least 10000 keys changed.</code>
주파수를 조정하기 위해 라인을 제거하거나 추가 할 수 있습니다. 단일 save
지시문은 Redis가 중간에 충돌하는 경우 일관성이없는 데이터로 이어질 수 있으므로 결함 공차를 향상시키기 위해 다중 save
지시문이 권장됩니다. RDB 스냅 샷은 비동기 적으로 생성되므로 Redis 작업을 차단하지 않습니다.
AOF 구성 : AOF는 모든 쓰기 작업을 파일에 로그합니다. 이것은보다 세분화 된 데이터 복구를 제공하지만 RDB보다 느리게 할 수 있습니다. redis.conf
에서 AOF를 구성합니다.
<code>appendonly yes # Enable AOF appendfilename "appendonly.aof" # Specify the AOF filename appendfsync everysec # Write the AOF file to disk every second. Other options are "always" (sync after every write) and "no" (OS handles syncing).</code>
appendfsync
데이터 내구성에 중요합니다. everysec
성능과 데이터 안전 사이의 균형을 제공합니다. always
데이터 안전을 보장하지만 성능에 영향을 미칩니다. no
는 가장 빠르지 만 시스템이 충돌하면 데이터 손실을 위험에 빠뜨립니다.
RDB와 AOF를 동시에 활성화 할 수 있습니다. 이 경우 AOF는 충돌의 경우보다 완전한 복구를 제공하는 반면 RDB는 빠른 백업 역할을 할 수 있습니다. 특정 요구와 우선 순위에 따라 구성을 조정해야합니다.
RDB와 AOF 사이의 선택은 우선 순위에 따라 다릅니다.
특징 | RDB | aof |
---|---|---|
속도 | 더 빠른 스냅 샷은 비동기 적으로 만들어집니다 | 특히 appendfsync always 느려집니다 |
데이터 안전 | 충돌 중에 덜 안전하고 잠재적 인 데이터 손실 | 더 안전하고 최소한의 데이터 손실이 everysec 또는 always
|
복구 시간 | 더 빠른 복구 | 파일 크기에 따라 복구가 느려집니다 |
디스크 공간 | 더 적은 디스크 공간을 사용합니다 | 더 많은 디스크 공간을 사용합니다 |
복잡성 | 구성하기가 더 간단합니다 | 더 복잡한 구성 및 관리 |
RDB는 데이터 손실 공차가 높고 속도가 중요 한 애플리케이션에 적합합니다. AOF는 데이터 무결성이 높은 응용 프로그램에 더 적합하며 일부 성능을 기꺼이 희생하려고합니다. 둘 다 사용하면 강력한 솔루션이 제공됩니다.
Redis 지속성을 최적화하려면 작업량 및 성능 요구를 신중하게 고려해야합니다. 몇 가지 전략은 다음과 같습니다.
save
지시문 및 appendfsync
설정을 실험하여 AOF. 데이터 안전과 속도 사이의 최적 균형을 찾으려면 성능 메트릭 (CPU 사용, I/O 대기 시간)을 모니터링합니다.이 질문에 대한 단일 대답은 없습니다. 데이터 수정 속도, 데이터 손실 공차 및 성능 요구 사항에 크게 의존합니다.
RDB : 기본값과 같은 보수적 인 설정으로 시작하여 데이터 손실 공차를 모니터링하십시오. 응용 프로그램이 몇 분의 데이터 손실을 견딜 수있는 경우 덜 빈번한 스냅 샷이 허용됩니다. 더 높은 데이터 안전이 필요한 경우 빈도를 늘리십시오.
AOF : appendfsync everysec
대부분의 응용 프로그램에 대한 성능과 데이터 안전 사이의 균형을 잘 제공합니다. appendfsync always
최대의 데이터 안전을 제공하지만 성능을 줄입니다. appendfsync no
는 가장 빠르지 만 가장 위험합니다. 위험 허용 오차에 맞는 옵션을 선택하십시오.
Redis 인스턴스의 성능을 정기적으로 모니터링하십시오. 지속성 작업으로 인한 성능 저하를 관찰하면 그에 따라 주파수를 조정하십시오. 도구를 사용하여 CPU 사용량, I/O 대기 시간 및 메모리 사용을 모니터링하여 구성 선택을 안내하는 것을 고려하십시오. 현실적인로드 조건에서 구성을 철저히 테스트해야합니다.
위 내용은 Redis Persistence (RDB 스냅 샷 및 AOF)를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!