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.dumppliku jest ./(oznaczający bieżący katalog). Możesz to sprawdzić w swoim redis.confpliku. Dlatego katalog, z którego uruchamiasz serwer redis, jest miejscem, w którym dump.rdbplik 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.rdbpliku.
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-clii zaktualizować dirklucz 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, BGSAVEaby wywołać tworzenie dump.rdbpliku.
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.