Uruchom serwer Redis w katalogu, w którym Redis ma uprawnienia do zapisu
Powyższe odpowiedzi z pewnością rozwiążą Twój problem, ale oto, co się właściwie dzieje:
Domyślną lokalizacją do przechowywania rdb.dump
pliku jest ./
(oznaczający bieżący katalog). Możesz to sprawdzić w swoim redis.conf
pliku. Dlatego katalog, z którego uruchamiasz serwer redis, jest miejscem, w którym dump.rdb
plik zostanie utworzony i zaktualizowany.
Wygląda na to, że zacząłeś uruchamiać serwer redis w katalogu, w którym redis nie ma odpowiednich uprawnień do utworzenia dump.rdb
pliku.
Co gorsza, redis prawdopodobnie również nie pozwoli ci zamknąć serwera, dopóki nie będzie w stanie utworzyć pliku rdb, aby zapewnić prawidłowe zapisywanie danych.
Aby rozwiązać ten problem, musisz przejść do aktywnego środowiska klienta redis za pomocą redis-cli
i zaktualizować dir
klucz oraz ustawić jego wartość w folderze projektu lub dowolnym folderze, w którym użytkownik inny niż root ma uprawnienia do zapisywania. Następnie uruchom, BGSAVE
aby wywołać tworzenie dump.rdb
pliku.
CONFIG SET dir "/hardcoded/path/to/your/project/folder"
BGSAVE
(Teraz, jeśli potrzeba , aby zapisać plik dump.rdb w katalogu, który rozpoczął się w serwer, a następnie będzie trzeba zmienić uprawnienia do katalogu, tak aby Redis można napisać do niego. Można wyszukiwać stackoverflow dla jak to zrobić ).
Teraz powinieneś być w stanie zamknąć serwer Redis. Zauważ, że zakodowaliśmy ścieżkę na stałe. Hardcoding jest rzadko dobrą praktyką i bardzo polecam uruchomienie serwera redis z katalogu projektu i zmianę dir key back to
. / `.
CONFIG SET dir "./"
BGSAVE
W ten sposób, gdy potrzebujesz redis dla innego projektu, plik zrzutu zostanie utworzony w katalogu bieżącego projektu, a nie w katalogu projektu ścieżki zakodowanej na stałe.