>데이터 베이스 >Redis >Redis Persistence (RDB 스냅 샷, AOF)를 어떻게 구성합니까?

Redis Persistence (RDB 스냅 샷, AOF)를 어떻게 구성합니까?

百草
百草원래의
2025-03-14 18:04:16609검색

Redis Persistence (RDB 스냅 샷, AOF)를 어떻게 구성합니까?

redis persistence를 구성하려면 RDB (Redis Database) 스냅 샷과 AOF (파일 만 추가)를 모두 고려해야합니다. 각각을 구성하는 방법은 다음과 같습니다.

RDB 스냅 샷 :

  1. RDB 활성화 : 기본적으로 RDB가 활성화됩니다. redis.conf 파일에서 구성 할 수 있습니다. 스냅 샷 주파수를 설정하려면 save 으로 시작하는 줄을 찾으십시오.

     <code>save 900 1 save 300 10 save 60 10000</code>

    이 라인은 다음 조건 중 하나가 충족되면 Redis가 데이터 세트를 디스크에 저장한다는 것을 의미합니다.

    • 900 초 (15 분)가 통과되었고 최소 1 개의 키가 변경되었습니다.
    • 300 초 (5 분)가 통과되었고 최소 10 개의 키가 변경되었습니다.
    • 60 초 (1 분)가 통과되었고 최소 10,000 개의 키가 변경되었습니다.
  2. 파일 이름 및 위치 : redis.conf 에서 파일 이름과 경로를 설정할 수도 있습니다.

     <code>dbfilename dump.rdb dir /var/lib/redis</code>
  3. 압축 : 디스크 공간을 저장하기 위해 RDB 파일을 압축 할 수 있습니다. 구성에서이를 활성화 또는 비활성화합니다.

     <code>rdbcompression yes</code>

AOF (파일 만 추가) :

  1. aof : aof는 기본적으로 비활성화되었습니다. 이를 가능하게하려면 redis.conf 에서 appendonly yes 로 설정하십시오.

     <code>appendonly yes</code>
  2. 파일 이름 및 위치 : RDB와 유사하게 파일 이름 및 경로를 설정할 수 있습니다.

     <code>appendfilename "appendonly.aof" dir /var/lib/redis</code>
  3. AOF Rewrite : Redis가 다시 쓰기를 수행 할 때 제어하려면 auto-aof-rewrite-percentageauto-aof-rewrite-min-size 사용하십시오.

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>

    이러한 설정은 현재 AOF 파일이 마지막 재 작성보다 100% 더 크고 크기가 64MB 이상인 경우 AOF 재 작성이 트리거된다는 것을 의미합니다.

  4. fsync 정책 : appendfsync 설정은 Redis가 디스크에 데이터를 얼마나 자주 작성하는지 제어합니다.

     <code>appendfsync everysec</code>

    옵션에는 always , everysecno 포함됩니다. everysec 성능 및 데이터 안전 균형을 유지하는 일반적인 선택입니다.

redis persistence에 대한 RDB 대 AOF를 선택하는 성능은 무엇입니까?

Redis Persistence를 위해 RDB와 AOF를 선택하면 여러 가지 방법으로 성능에 영향을 미칩니다.

RDB :

  • 성능 영향 : RDB 스냅 샷은 일반적으로 정의 된 간격으로 대량으로 데이터를 작성하기 때문에 정기적 인 작동 중에 자원 집약적이지 않습니다. 이는 Redis가 모든 쓰기 명령에 대해 I/O 작업을 수행 할 필요가 없음을 의미합니다.
  • 복구 시간 : 전체 데이터 세트가 한 번에 메모리에로드되므로 RDB 스냅 샷은 복구하는 데 시간이 덜 걸립니다.
  • 데이터 안전 : RDB는 데이터 내구성 측면에서 덜 안전합니다. 스냅 샷 사이에 Redis가 충돌하면 마지막 저장 지점에서 데이터를 잃을 수 있습니다.

aof :

  • 성능 영향 : AOF는 모든 쓰기 작업을 기록하기 때문에 더 자주 리소스 집약적 일 수 있습니다. 그러나 fsync 정책으로 성능 히트를 완화 할 수 있습니다.

    • always : 동기식은 모든 명령에 대해 디스크에 쓰여져 내구성이 높지만 성능에 크게 영향을 미칩니다.
    • everysec : 매 초마다 디스크에 글을 쓰고 성능과 데이터 안전 사이의 균형을 잘 제공합니다.
    • no : FSYNC는 운영 체제에 의존하여 디스크에 데이터를 작성하여 가장 안전하지는 않지만 성능에 영향을 미치지 않습니다.
  • 복구 시간 : Redis는 데이터 세트를 재구성하기 위해 모든 쓰기 작업을 재생해야하기 때문에 AOF 파일이 복구하는 데 시간이 오래 걸릴 수 있습니다.
  • 데이터 안전 : AOF는 모든 작업을 기록하여 충돌시 데이터 손실을 최소화하기 때문에 더 나은 데이터 안전을 제공합니다.

Redis에서 RDB 스냅 샷의 주파수와 크기를 최적화하려면 어떻게해야합니까?

Redis에서 RDB 스냅 샷의 주파수와 크기를 최적화하려면 다음 전략을 고려하십시오.

주파수 최적화 :

  • 저장 간격 조정 : 데이터 안전과 성능의 균형을 유지하려면 redis.confsave 간격을 수정하십시오. 예를 들어, 데이터 세트가 자주 변경되지 않으면 빈도를 줄일 수 있습니다.

     <code>save 3600 1 save 300 100 save 60 10000</code>
  • 모니터링 및 조정 : INFO 명령을 사용하여 rdb_last_save_timerdb_changes_since_last_save 메트릭을 모니터링합니다. 작업량에 따라 저장 간격을 조정하십시오.

크기 최적화 :

  • 압축 : 스냅 샷의 크기를 줄이기 위해 RDB 압축을 활성화합니다.

     <code>rdbcompression yes</code>
  • 데이터 유형 선택 : 데이터 구조를 현명하게 사용하십시오. 예를 들어, 여러 요소를 저장하기 위해 LIST 대신 SET 사용하면 스냅 샷이 더 작을 수 있습니다.
  • 데이터 만료 : 데이터 세트의 크기와 RDB 스냅 샷을 줄이기 위해 안전하게 제거 할 수있는 키에 대한 TTL (Live to Live) 구현.

추가 팁 :

  • 증분 스냅 샷 : 가능하면 증분 스냅 샷을 사용하여 스냅 샷 생성이 성능에 미치는 영향을 줄입니다. 이 기능은 Redis Enterprise에서 제공됩니다.
  • 큰 스냅 샷을 피하십시오 : 데이터 세트가 매우 크면 여러 redis 인스턴스에서 분할하여 스냅 샷 크기를 관리하십시오.

Redis에서 AOF를 사용할 때 데이터 무결성을 보장하기 위해 어떤 조치를 취해야합니까?

Redis에서 AOF를 사용할 때 데이터 무결성을 보장하려면 다음 단계를 따르십시오.

1. 올바른 fsync 정책을 선택하십시오.

  • 성능과 데이터 안전 사이의 균형을 위해 redis.confeverysecappendfsync 설정하십시오.

     <code>appendfsync everysec</code>
  • 데이터 손실이 중요하다면 appendfsync always 고려하십시오. 그러나 성능 영향을주의하십시오.

2. 정기적 인 AOF 재 작성 :

  • 파일 크기를 관리하기 쉽게 유지하고 데이터 무결성을 향상시키기 위해 자동 AOF 재 작성을 활성화하십시오.

     <code>auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb</code>
  • 필요할 때 BGREWRITEAOF 명령을 사용하여 AOF AOF 재 작성을 수동으로 트리거 할 수도 있습니다.

3. AOF 부패 검사 :

  • redis-check-aof 도구를 사용하여 파일 무결성을 확인하십시오. 부패가 감지되면 파일을 수리 할 수 ​​있습니다.

     <code>redis-check-aof --fix appendonly.aof</code>
  • 특히 서버가 다시 시작된 후 AOF 파일을 정기적으로 확인하고 복구 할 수있는 스크립트를 구현하십시오.

4. 중복성을위한 복제 :

  • Redis 복제를 설정하여 데이터의 여러 사본을 생성합니다. 이렇게하면 하나의 서버가 실패하더라도 데이터 무결성을 보장합니다.

     <code>slaveof <masterip> <masterport></masterport></masterip></code>
  • 고 가용성 및 자동 장애 조치에는 Sentinel을 사용하십시오.

5. 모니터링 및 경고 :

  • Redis Insight 또는 Prometheus 및 Grafana와 같은 타사 도구와 같은 Redis 모니터링 도구를 사용하여 파일 크기 및 무결성을 모니터링하십시오.
  • 비정상적인 성장 또는 오류에 대한 경고를 설정하여 데이터 무결성과 관련된 문제를 나타낼 수 있습니다.

6. 백업 전략 :

  • AOF 및 RDB 스냅 샷이 모두 포함 된 일반 백업 전략을 구현하십시오. 이것은 여러 계층의 데이터 보호를 제공합니다.
  • 데이터 센터 실패로부터 보호하기 위해 다른 위치에 백업을 저장합니다.

이 단계를 수행하면 aOF를 사용할 때 REDIS 설정의 데이터 무결성을 크게 향상시킬 수 있습니다.

위 내용은 Redis Persistence (RDB 스냅 샷, AOF)를 어떻게 구성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.