2017-08-02 1 views
0

Also, ich das Verzeichnis von dump.rdb ‚s Standort erhalten können mithilfe der dir Option in redis.conf zu ändern, wenn ich es normal starten (nur redis-server Aufruf). Wenn ich möchte, dass der redis-Server die ganze Zeit läuft (ich tue), ohne dass ein Terminal-Fenster immer geöffnet sein muss, denke ich, dass ich es dämonisieren muss. Es scheint jedoch nicht, dass dies auf dem Datenträger automatisch fortbesteht und immer wenn der Rediserver-Prozess endet (ich habe es mit dem Test beendet, indem ich einfach redis-cli shutdown ausgeführt habe oder den Prozess einfach mit kill PID beendet habe) und starte alle wieder Datenbankänderungen gehen verloren, was ziemlich schlimm erscheint, wenn in der Zukunft ein Absturz oder eine unerwartete Abschaltung auftreten würde. In dem Code, der die Verarbeitung von Daten (entweder python mit redis-py oder java mit jedis) ausführt, kann ich explizit bgsave() ausführen, aber das speichert dump.rdb in dem Verzeichnis, in dem der Code ausgeführt wurde und nicht, wo die dir -Option in redis.conf angibtWie Redis machen dump.rdb im Verzeichnis speichern, wenn daemonisierte

Also gibt es eine andere Möglichkeit, Redis-Server auszuführen, ohne dass ein ganzes Terminalfenster geöffnet bleiben muss, was erlaubt, was ich tun möchte, oder gibt es eine Möglichkeit, die Daten auf dem Datenträger im richtigen Verzeichnis zu erhalten es läuft als redis-server --daemonize yes oder ähnlich?

Antwort

0

Sie könnten es auf Linux "Hintergrund" mit nohup setzen. Es benötigt kein Terminalfenster, um auf dem Laufenden zu bleiben. Ich weiß nicht, die daemonize Option Sie eine Beratung darüber zu geben, aber, ob es für Sie arbeitet:

nohup redis-server &> redis.log& 

oder

Set daemonize ja in der conf Datei und starten:

redis-server pfad/zu/redis.conf

+0

unglücklicherweise bewirkt dies immer noch, dass die dump.rdb-datei in dem Verzeichnis gespeichert wird, in dem der Code ausgeführt wird und nicht wo ich in redis.conf spezifiziere. – jimmyq

+0

Das ist interessant. @jimmyq versuche das: setze die daemonize Option und übergebe die conf Datei als Parameter an redis-server ./redis-server/etc/redis.conf – k3rn3llp4n1c

+0

Also, ich hatte es versucht, der Redis-Server würde sofort starten und dann sofort Herunterfahren, weil es angeblich keine Berechtigung hat, in die Log-Datei in /var/log/redis/redis.log zu schreiben (ich habe sogar versucht, die Logs in das aktuelle Verzeichnis umzuleiten und auch versucht, die Berechtigungen für die/var vollständig zu öffnen/log/redes-Verzeichnis (würde lieber keine Berechtigungen für das gesamte/var/log-Verzeichnis öffnen)). Dies funktioniert jedoch (glücklicherweise) mit sudo priveleges. Hätte das lieber normal gemacht, aber das wird jetzt funktionieren, wenn niemand anders eine andere Lösung hat. Danke – jimmyq

Verwandte Themen