Redis는 캐싱, 작업 대기열 및 메시지 미들웨어와 같은 시나리오에서 자주 사용되는 고성능 오픈 소스 인 메모리 데이터베이스입니다. 그러나 Redis는 메모리를 기반으로 작동하기 때문에 정전과 같은 비정상적인 상황에서는 데이터 손실이 발생합니다. 따라서 Redis는 데이터의 보안과 신뢰성을 보장하기 위해 두 가지 지속성 메커니즘을 제공합니다.
RDB(redis 데이터베이스)는 Redis의 기본 지속성 방법입니다. 특정 조건이 충족되면 Redis는 메모리의 데이터 스냅샷을 디스크의 RDB 파일에 기록합니다. RDB 파일의 형식은 바이너리이며 현재 시점의 데이터베이스의 모든 키-값 쌍 정보를 포함합니다.
RDB 지속성의 장점은 RDB 파일만 메모리에 로드하면 되므로 공간을 거의 차지하지 않고 데이터를 빠르게 복원할 수 있다는 것입니다.
RDB 지속성을 트리거하는 방법에는 두 가지가 있습니다.
1) 수동 작업
Redis 클라이언트에서 SAVE 또는 BGSAVE 명령을 실행하여 RDB 지속성을 수동으로 트리거합니다. SAVE 명령은 Redis 서버를 차단하고 RDB 파일이 작성될 때까지 반환되지 않습니다. BGSAVE는 Redis 서버가 백그라운드에서 RDB 지속성 작업을 수행하도록 허용하고 Redis 서버의 일반 서비스를 차단하지 않습니다.
2) 자동 트리거
Redis의 자동 트리거 규칙을 구성하고 규칙이 충족되면 자동으로 RDB 지속성 작업을 수행합니다. redis.conf 파일에서 다음 설정을 통해 구성할 수 있습니다:
save 900 1
save 300 10
save 60 10000
여기 설정은 1개 이상의 키-값 쌍이 900초 내에 변경될 때 적어도 300초가 발생합니다. 10개의 키-값 쌍이 변경되고 60초 내에 최소 10,000개의 키-값 쌍이 변경되면 RDB 지속성 작업이 트리거됩니다. 여러 규칙이 설정된 경우 Redis는 설정된 순서대로 RDB 지속성 작업을 수행합니다.
AOF(파일만 추가) 지속성은 추가 기반 지속성 메커니즘입니다. Redis가 데이터베이스 수정 명령을 받으면 해당 명령이 실행될 뿐만 아니라 AOF 파일 끝에 추가됩니다.
AOF 지속성의 장점은 데이터베이스를 수정하는 모든 작업이 AOF에 기록되어 데이터 손실을 최소화하고 AOF 파일의 텍스트 형식이 더 읽기 쉽고 이해하기 쉽기 때문에 데이터가 더 안전하다는 것입니다.
AOF 지속성을 트리거하는 방법에는 두 가지가 있습니다.
1) 수동 작업
Redis 클라이언트에서 BGREWRITEAOF 명령을 실행하여 AOF 지속성을 수동으로 트리거합니다. 이 명령은 백그라운드에서 AOF 파일의 다시 쓰기 작업을 수행하고 Redis가 실행한 명령을 새 AOF 파일에 다시 기록하며 데이터베이스에 영향을 미치는 명령만 유지합니다.
2) 자동 트리거
redis.conf 파일의 구성 설정을 통해 규칙을 자동으로 트리거할 수 있습니다. 규칙이 충족되면 AOF 파일이 자동으로 다시 작성됩니다:
auto-aof-rewrite-percentage 100
auto-aof-rewrite -min-size 64mb
여기서 설정은 AOF 파일 크기가 64MB를 초과하거나 AOF 다시 쓰기 후 새 AOF 파일 크기가 기존 AOF 파일 크기의 100배를 초과하는 경우 다시 쓰기가 수행됨을 의미합니다. AOF 파일이 트리거됩니다.
요약하자면 RDB 지속성과 AOF 지속성은 각각 장단점이 있으므로 실제 상황에 따라 선택하고 구성해야 합니다. 동시에 지속성 메커니즘을 사용하는 동안 데이터 보안을 보장하기 위해 데이터 백업 및 복구 테스트도 수행해야 한다는 점에 유의해야 합니다.
위 내용은 Redis 지속성 메커니즘 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!