Starten Sie Redis Server in einem Verzeichnis, in dem Redis über Schreibberechtigungen verfügt
Die obigen Antworten werden Ihr Problem definitiv lösen, aber hier ist, was tatsächlich vor sich geht:
Der Standardspeicherort für die rdb.dump
Datei ist ./
(das aktuelle Verzeichnis). Sie können dies in Ihrer redis.conf
Datei überprüfen . In dem Verzeichnis, in dem Sie den Redis-Server starten, wird daher eine dump.rdb
Datei erstellt und aktualisiert.
Anscheinend haben Sie damit begonnen, den Redis-Server in einem Verzeichnis auszuführen, in dem Redis nicht über die richtigen Berechtigungen zum Erstellen der dump.rdb
Datei verfügt.
Um die Sache noch schlimmer zu machen, können Sie mit redis den Server wahrscheinlich auch nicht herunterfahren, bis die rdb-Datei erstellt werden kann, um das ordnungsgemäße Speichern von Daten sicherzustellen.
Um dieses Problem zu lösen, müssen Sie mit redis-cli
dem dir
Schlüssel in die aktive Redis-Client-Umgebung wechseln, diesen aktualisieren und seinen Wert auf Ihren Projektordner oder einen Ordner festlegen, in dem Nicht-Root-Benutzer Berechtigungen zum Speichern haben. Führen Sie dann aus BGSAVE
, um die Erstellung der dump.rdb
Datei aufzurufen .
CONFIG SET dir "/hardcoded/path/to/your/project/folder"
BGSAVE
(Nun, wenn Sie benötigen die dump.rdb Datei im Verzeichnis zu speichern , dass Sie den Server in, begannen dann werden Sie für das Verzeichnis Berechtigungen ändern müssen , so dass redis , um es schreiben. Sie können für die Suche Stackoverflow , wie das zu tun ).
Sie sollten nun in der Lage sein, den Redis-Server herunterzufahren. Beachten Sie, dass wir den Pfad fest codiert haben. Hardcoding ist selten eine gute Praxis und ich empfehle dringend, den Redis-Server von Ihrem Projektverzeichnis aus zu starten und die dir key back to
. / `Zu ändern .
CONFIG SET dir "./"
BGSAVE
Auf diese Weise wird die Speicherauszugsdatei im Verzeichnis Ihres aktuellen Projekts und nicht im Projektverzeichnis des fest codierten Pfads erstellt, wenn Sie Redis für ein anderes Projekt benötigen.