redis는 RDB(Redis DataBase)와 AOF(Apend Only File)라는 두 가지 데이터 지속성 방법을 제공합니다.
RDB 방식
RDB 방식은 특정 순간의 데이터를 디스크에 유지하는 스냅샷 지속성 방식입니다. (추천 학습: Redis 비디오 튜토리얼)
데이터 지속성 과정에서 Redis는 먼저 데이터를 임시 파일에 기록합니다. 지속성 프로세스가 완료된 후 이 임시 파일로 대체됩니다. 좋은 파일. 스냅샷 파일을 항상 완전하게 사용할 수 있기 때문에 언제든지 백업을 수행할 수 있는 것이 이 기능입니다.
RDB 모드의 경우 redis는 지속성을 위해 별도의 하위 프로세스를 생성(포크)하며 기본 프로세스는 IO 작업을 수행하지 않으므로 Redis의 매우 높은 성능이 보장됩니다.
대규모 데이터 복구가 필요하고 데이터 복구의 무결성이 그다지 중요하지 않은 경우 RDB 방법이 AOF 방법보다 더 효율적입니다.
AOF 방법
AOF 방법은 실행된 쓰기 명령을 기록하고, 데이터 복구 중에 앞에서 뒤로 순서대로 다시 명령을 실행합니다.
AOF 명령은 redis 프로토콜을 사용하여 각 쓰기 작업을 파일 끝에 추가하고 저장합니다. Redis는 AOF 파일의 크기가 너무 커지지 않도록 백그라운드에서 AOF 파일을 다시 작성할 수도 있습니다.
기본 AOF 지속성 전략은 초당 한 번씩 fsync하는 것입니다(fsync는 캐시의 쓰기 명령을 디스크에 기록하는 것을 의미함). 이 경우 redis는 실패하더라도 여전히 좋은 처리 성능을 유지할 수 있고 데이터만 마지막 1초가 손실됩니다.
로그를 추가할 때 디스크 공간이 가득 차거나, inode가 가득 차거나, 정전으로 인해 로그 쓰기가 불완전해지는 경우에도 Redis는 다음 작업에 사용할 수 있는 redis-check-aof 도구를 제공합니다. 로그를 복구합니다.
append 방식으로 인해 처리가 이루어지지 않으면 AOF 파일이 점점 더 커지게 됩니다. 이러한 이유로 redis는 AOF 파일 재작성(rewrite) 메커니즘을 제공합니다. 즉, AOF 파일의 크기가 set 임계값을 초과하면 redis는 데이터를 복구할 수 있는 최소 명령어 세트만 유지하면서 AOF 파일의 콘텐츠 압축을 시작합니다.
INCR 명령을 100번 호출하면 100개의 명령이 AOF 파일에 저장되지만 이는 분명히 매우 비효율적입니다. 다시 쓰기 메커니즘의 원리.
AOF를 다시 작성할 때 임시 파일을 먼저 작성한 다음 교체하는 과정이 계속 사용되므로 정전, 디스크 가득 참 등의 문제가 AOF 파일의 가용성에 영향을 미치지 않습니다.
더 많은 Redis 관련 기술 기사를 보려면 Redis 시작 튜토리얼 칼럼을 방문하여 알아보세요!
위 내용은 Redis가 데이터 지속성을 어떻게 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!