Redis 명령 BGREWRITEAOF로 인해 디스크에서 임시 파일 삭제

Redis 명령 BGREWRITEAOF로 인해 디스크에서 임시 파일 삭제

컨텍스트 설명

내 Linux 배포판에는 redis-server 6.0.5가 포함되어 있습니다. Redis는 지속성을 사용하도록 구성되었으며 AOF(파일 추가만) RDB지속성은 비활성화되었습니다.

시작 시 스크립트는 redis-server에 BGREWRITEAOF명령 실행을 요청합니다. 이 요청은 파일이 기록되는 동일한 데이터 Redis 경로에 <pid>파일을 생성하는 프로세스(PID= 사용)를 시작합니다.temp-rewriteaof-<pid>.aofappendonly.aof

이는 명령의 정상적인 작동입니다 BGREWRITEAOF. 이 명령의 유용성은 다음과 같이 작성된 내용으로 입증됩니다.이 게시물.

문제는 무엇입니까

BGREWRITEAOF문제는 완료되지 않고 시스템이 종료될 때 발생합니다. 이 경우 파일은 temp-rewriteaof-<pid>.aof재부팅 후에도 유지되며 디스크 공간을 차지합니다.

시스템은 언제든지 종료될 수 있으므로 디스크가 꽉 찰 위험이 있었습니다. 이 문제를 해결하는 유일한 방법은 데이터 Redis 폴더에서 모든 파일을 삭제
하는 스크립트를 만드는 것 같습니다 .temp-rewriteaof-*.aof

질문

더 나은 해결책을 아는 사람이 있습니까? Redis에는깨끗한이 문제를 해결하기 위한 프로그램/명령어는 무엇입니까?

답변1

Redis-server는 실행되는 서버의 디스크 공간을 관리하는 복잡한 방법이 없습니다. 설명된 대로 자체 RDB 스냅샷 파일과 AOF 파일을 관리합니다. 그러나 컴퓨터 중지로 인해 중단된 이전 프로세스에서 생성된 파일을 관리하는 것은 Redis가 수행하는 작업이 아닙니다.

BGREWRITEAOFRedis 서버에 명령을 보내기 위해 작성하는 시작 스크립트에 루틴을 추가하는 것이 좋습니다 . 이 루틴은 서버가 마지막으로 중지되었을 때 남은 오래된 임시 AOF 파일을 모두 지웁니다. 이 루틴을 수행하기에 좋은 장소입니다. 스크립트는 이미 AOF 파일 관리와 관련되어 있으며 시작 시간은 정리를 통해 다음 몇 시간/일 작업(및 디스크 공간 소비)을 위해 컴퓨터를 준비하기에 적절한 시간입니다. 오래된 파일을 업데이트합니다.

관련 정보