Redis 지속성은 RDB와 AOF 두 가지 유형으로 제공되며, 기본값은 RDB 지속성 구성입니다
RDB는 일정 시간 동안 작업을 기록하며, 디스크의 구성은 일정 시간 이상 운영된 후에도 유지됩니다. AOF는 모든 작업의 지속성을 가능하게 합니다.
스냅샷 지속 모드
스냅샷이 기본 지속 방식입니다. 이 방법은 메모리에 있는 데이터를 이진수에 스냅샷으로 기록하는 것이며, 기본 파일 이름은 dump.rdb입니다. 스냅샷 영속성 메서드를 자동으로 설정할 수 있습니다. n초 이내에 m개 이상의 키가 수정되면 자동으로 스냅샷을 찍도록 redis를 설정할 수 있습니다. 다음은 기본 스냅샷 저장 설정입니다
Save 900 1#900秒内如果超过1个key被修改, 스냅샷 저장이 시작됩니다 10#300秒内容如超过10个key被修改 세이브 300, 스냅샷 저장이 시작됩니다 60 10000 절약
AOF 지속 모드
메서드를 설정하려면 Redis 설정 파일을 열어보세요. AppendOnly를 찾아보세요. 기본값은 부속 없이(appendonly no)입니다. 네, 부록으로 변경했습니다. 옵션:
1, appendfsync no
appendfsync가 아니오로 설정되어 있으면 Redis는 fsync를 적극적으로 호출하여 AOF 로그 내용을 디스크에 동기화하지 않으므로, 모든 것은 운영체제 디버깅에 전적으로 의존합니다. 대부분의 리눅스 운영체제에서는 버퍼에서 디스크로 데이터를 쓰기 위해 30초마다 fsync가 수행됩니다.
2, appendfsync 매 sec
appendfsync가 매 sec으로 설정되어 있으면, Redis는 기본적으로 매초 fsync 호출을 하여 버퍼의 데이터를 디스크로 쓰게 됩니다. 하지만 fsync 통화가 1초 이상 지속되면 Redis는 fsync 지연 정책을 택하고 1초만 더 기다릴 것입니다. 즉, fsync는 2초 후에 수행되며, 이 시간 동안 실행되는 fsync는 계속 수행됩니다. 이 시점에서 파일 디스크립터가 fsync 중에 차단되기 때문에 현재 쓰기 작업이 차단됩니다.
결론적으로: 대부분의 경우 Redis는 매초 fsync를 합니다. 최악의 경우, fsync 작업이 2초마다 발생합니다.
이 작업은 대부분의 데이터베이스 시스템에서 그룹 커밋(group commit)이라고 하며, 여러 쓰기 작업의 데이터를 결합해 로그를 한 번에 디스크에 쓰는 방식입니다.
3, appednfsync 항상
appendfsync가 항상 설정되어 있을 때, 데이터가 가장 안전한 쓰기 작업마다 fsync가 한 번씩 호출되며, fsync가 매번 수행되기 때문에 성능에도 영향을 받습니다
AppendfSync 매 sec 권장(기본값)
스냅샷 모드는 AOF 모드와 동시에 활성화할 수 있습니다, 서로 영향을 주지 않는다
Redis가 지속성을 끕니다
데이터 지속성은 Redis를 다른 캐시와 차별화하는 기능이며, 명백한 장점을 가지고 있습니다. 하지만 지금 Redis가 데이터를 영속화하지 않게 하고 싶다면, memcache 캐시처럼 캐시로 쓰고 싶습니다. 인터넷에서 찾아봤는데, 모두 Redis 지속성 끄는 방법에 관한 내용이었고, 지속성 끄는 방법에 대한 내용은 거의 없었습니다.
구성 파일을 수정하세요 구성 파일에 저장된 모든 구성 정보를 다음과 같이 주석 달아주세요:
또는 구성 파일을 다음과 같이 수정할 수도 있습니다:
수정이 완료된 후에는 Redis 서비스를 재시작하세요.
행동 명령 실행 문법:
명령을 실행하면 서비스를 재시작하지 않고도 발효됩니다.
|