지속성이 필요한 이유는 무엇입니까?
일반적으로 모든 Redis 데이터는 메모리에 저장됩니다. 데이터베이스가 실패하고 다시 시작되면 Redis 클러스터 또는 Redis Sentinel 모드에서도 마스터-슬레이브 동기화 데이터가 복구됩니다. 아직 시간이 좀 걸릴 거예요.
지속성 기능은 프로세스 종료로 인한 데이터 손실을 효과적으로 방지할 수 있습니다. 다음 재시작 시 이전에 유지된 파일을 사용하여 데이터를 복원할 수 있습니다.
Redis 지속성을 사용한 후에는 데이터가 디스크에 저장됩니다. 데이터베이스가 증분 동기화를 수행할 때 필요한 시간은 전체 동기화를 수행하는 데 필요한 시간보다 훨씬 적습니다. 오류로부터의 데이터 복구는 프로덕션 환경에서 매우 중요한 역할을 합니다!
Redis 데이터 지속성을 위한 두 가지 솔루션이 있습니다.
Redis 지속성을 위한 두 가지 솔루션이 있습니다.
RDB는 스냅샷 데이터 저장소입니다. 현재 시점의 모든 Redis 데이터를 디스크에 저장합니다.
AOF는 Redis 쓰기 작업을 디스크에 실시간으로 기록하는 추가 기반 저장 방법입니다.
이 두 솔루션의 차이점은 무엇인가요? 하나씩 설명해드리겠습니다~
1. RDB 지속성
Redis 작성 시 RDB 지속성 조건이 발생하는 경우(수동 실행으로도 발생 가능) dgsave 명령) Redis 기본 프로세스는 하위 프로세스를 포크하여 임시 RDB 스토리지 파일을 생성한 후 원본 RDB 파일을 대체하기 위해 임시 파일의 이름을 바꿉니다. RDB 파일은 재해 복구 백업 및 데이터 복구에 매우 적합한 단일 파일입니다. RDB 파일을 통해 데이터베이스를 복원하는 데는 일반적으로 1G 스냅샷 파일을 메모리에 로드하는 데 약 20초밖에 걸리지 않습니다.
단점:
RDB 지속성은 Redis 데이터를 주기적으로만 저장합니다. 다음 저장소가 트리거되기 전에 Redis가 다운되면 메모리의 모든 데이터가 손실됩니다.
또한 데이터 양이 많은 경우 하위 프로세스를 포크하는 작업은 CPU를 많이 소모합니다. 아래 모니터링 차트에서 볼 수 있듯이 RDB 지속성이 1800초마다 트리거되면 Redis에서 소모하는 CPU가 급증합니다. . 포크 하위 프로세스 중에 두 번째로 긴 차단이 발생할 수 있습니다.
매개변수:
저장 옵션입니다. 빈 저장 ""으로 구성하면 RDB 지속성을 켜기 위한 여러 트리거 조건을 구성할 수 있습니다(예: 900개 이내 쓰기 1회). 300초 이내에 입력으로 트리거되는 스냅샷/10개의 쓰기로 트리거되는 스냅샷. 이는 성능과 데이터 보안의 균형을 맞추기 위해 자체 Redis 쓰기 조건에 따라 자유롭게 구성할 수 있습니다.
stop-writes-on-bgsave-error를 켜는 것이 좋습니다. redis bgsave에 오류가 발생하면 클라이언트의 요청이 거부됩니다. bgsave의 실패는 일반적으로 디스크나 메모리 공간 부족으로 인해 발생하며 모니터링이 실패합니다. 데이터 보안을 강화하는 데 필요합니다.
2. AOF 지속성
AOF는 Redis 쓰기 작업에 대한 명령을 저장하여 지속성을 달성합니다. 지속성을 위해 Redis 데이터의 보안이 크게 향상됩니다. 길을 잃다. Redis의 쓰기 작업은 AOF 파일에 기록됩니다. 파일 형식은 명확하고 이해하기 쉽고 쉽게 수정할 수 있으므로 데이터 재구성이 용이합니다.
단점:
redis 쓰기가 증가함에 따라 AOF 저장 파일이 점점 커지고 이는 데이터베이스 데이터의 복구 시간과 디스크 공간에 영향을 미치므로 크기를 줄이기 위해 AOF 재작성을 구성해야 합니다. AOF 파일의 볼륨은 기본 두 가지 트리거 조건을 사용하여 구성하거나 BGREWRITEAOF 명령을 수동으로 호출하여 트리거할 수 있습니다.
매개변수:
appendonly는 AOF 지속성을 활성화할지 여부를 설정합니다.
appendfsync에는 데이터 저장소의 속도와 보안을 고려하여 Always/everysec/no의 세 가지 지속성 모드가 있으며, 이를 Everysec로 구성하고 매초마다 데이터를 디스크에 동기화합니다.
3. RDB와 AOF 지속성의 장점과 단점 비교
두 가지 Redis 데이터 지속성 방식을 비교해 보겠습니다.
4. 먼저 데이터를 복원합니다. AOF 파일이 있는지 확인하고, 없으면 RDB 파일을 로드해 보세요.
다양한 상황에서 데이터 양, 데이터 보안을 위한 적용 요구 사항, 예산 제약 등에 따라 실제 생산 환경에서는 다양한 지속성 전략이 사용됩니다. 이 문장은 다음과 같이 다시 작성할 수 있습니다. 지속성을 사용하지 않도록 선택하거나, 별도의 RDB 또는 AOF 지속성을 사용하도록 선택하거나, RDB 및 AOF 지속성을 동시에 활성화할 수 있습니다.PS: 지속성 선택은 Redis의 마스터-슬레이브 전략과 함께 고려해야 합니다. 마스터-슬레이브 복제 및 지속성에도 데이터 백업 기능이 있고 호스트 마스터와 슬레이브 슬레이브가 독립적으로 지속성 솔루션을 선택할 수 있기 때문입니다.
위 내용은 Redis의 지속성 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!