Redis에 쓰기 권한이있는 디렉토리에서 Redis 서버를 시작하십시오.
위의 답변은 문제를 확실히 해결하지만 실제로 진행중인 작업은 다음과 같습니다.
rdb.dump
파일 을 저장하기위한 기본 위치 는 ./
(현재 디렉토리를 나타냄)입니다. redis.conf
파일 에서이를 확인할 수 있습니다 . 따라서 redis 서버를 시작하는 디렉토리는 dump.rdb
파일이 작성되고 업데이트되는 위치입니다.
redis에 dump.rdb
파일 을 작성할 수있는 올바른 권한이없는 디렉토리에서 redis 서버를 실행하기 시작한 것 같습니다 .
설상가상으로 redis는 rdb 파일을 만들어 데이터를 올바르게 저장할 수있을 때까지 서버를 종료 할 수 없을 것입니다.
이 문제를 해결하려면 키를 사용하여 활성 redis 클라이언트 환경으로 이동하여 키를 redis-cli
업데이트 dir
하고 값을 프로젝트 폴더 또는 루트가 아닌 사용자가 저장할 권한이있는 폴더로 설정해야합니다. 그런 다음 파일 BGSAVE
작성을 호출하기 위해 실행 dump.rdb
하십시오.
CONFIG SET dir "/hardcoded/path/to/your/project/folder"
BGSAVE
(이제 서버를 시작한 디렉토리에 dump.rdb 파일을 저장 해야하는 경우 , redis가 해당 디렉토리에 쓸 수 있도록 디렉토리에 대한 권한을 변경해야합니다. ).
이제 redis 서버를 종료 할 수 있습니다. 경로를 하드 코딩했습니다. 하드 코딩은 거의 좋은 방법이 아니며 프로젝트 디렉토리에서 redis 서버를 시작하고 dir key back to
. /`를 변경하는 것이 좋습니다 .
CONFIG SET dir "./"
BGSAVE
이렇게하면 다른 프로젝트에 대한 redis가 필요할 때 덤프 파일이 하드 코드 된 경로의 프로젝트 디렉토리가 아닌 현재 프로젝트의 디렉토리에 작성됩니다.