Anscheinend wird eine redis-server
Instanz ausgeführt, da ich beim Versuch, einen neuen Server durch Eingabe zu starten redis-server
, Folgendes begrüßt werde:
Opening port: bind: Address already in use
Ich kann nicht herausfinden, wie ich diesen Server stoppen und einen neuen starten kann.
Gibt es einen Befehl, an den ich anhängen kann, redis-server
wenn ich die CLI eingebe?
Mein Betriebssystem ist Ubuntu 10.04.
redis-cli ping
. Ein laufender Redis-Server antwortet mitPONG
.Antworten:
Stellen Sie entweder eine Verbindung zur Knoteninstanz her und verwenden Sie den Befehl shutdown. Wenn Sie Ubuntu verwenden, können Sie versuchen, den Redis-Server über init.d neu zu starten:
oder stoppen / starten:
Auf dem Mac
quelle
launchctl
, und auf anderen Systemensystemctl
oderservice
.service redis-server stop
undservice redis-server start
, nachdem ich es mit installiert habeapt-get install redis-server
.Ein sauberer und zuverlässigerer Weg ist es, in redis-cli zu gehen und dann zu tippen
shutdown
Geben
help @server
Sie in redis-cli Folgendes ein und Sie sehen dies am Ende der Liste:Wenn in einem Terminal eine Redis-Server-Instanz ausgeführt wird, wird Folgendes angezeigt:
quelle
redis-cli shutdown
. (Sie können zum Beispiel einenredis-cli set cat dog; redis-cli get cat
redis-cli set cat dog; redis-cli get cat
Änderungen an vorgenommen werdenredis-cli -a mypassword set cat dog; redis-cli -a mypassword get cat
, was nach einigen Befehlen ärgerlich sein kann.alias redis-cli="redis-cli -a mypassword"
. Auf diese Weise können Sie die Anrufe wie in meinem ursprünglichen Kommentar tätigen, ohne Ihr Passwort bei jeder Verwendung erneut eingeben zu müssen.redis-cli shutdown
ist am effektivsten. Die akzeptierte Antwort funktioniert bei mir nicht (OSX Lion). Danke, @JesseBuesking.quelle
redis-cli.exe shutdown
redis-cli --help
dies diesen Fall hätte abdecken können.Für OSX habe ich die folgenden Aliase zum Starten und Stoppen erstellt
redis
(installiert mit Homebrew):Dies hat sich hervorragend für die lokale Entwicklung bewährt!
Homebrew hat jetzt
homebrew-services
die Möglichkeit, Dienste zu starten, zu stoppen und neu zu starten. Homebrew-Dienstebrew services
wird beim Ausführen automatisch installiert.Wenn Sie verwenden
run
, wird es beim Anmelden (oder Booten) nicht gestartet.start
startet denredis
Dienst und fügt ihn beim Anmelden und Booten hinzu.quelle
brew services stop redis
funktioniert das auch! :)Geben Sie
SHUTDOWN
die CLI einoder
Wenn Sie sich nicht um Ihre Daten im Speicher kümmern, können Sie auch eingeben
SHUTDOWN NOSAVE
, um das Herunterfahren des Servers zu erzwingen.quelle
Versuchen Sie es
killall redis-server
. Sie können auch verwendenps aux
, um den Namen und die PID Ihres Servers zu finden und ihn dann mit zu beendenkill -9 here_pid_number
.quelle
Option 1: Gehen Sie zum Redis-Installationsverzeichnis und navigieren Sie
src
in meinem Fall zu:Dabei ist 6379 der Standardport.
Option 2: Redis-Prozess finden und töten
Und dann töte:
Ich verwende Centos 6.7, x86_64
ich hoffe es hilft
quelle
Stoppen Sie den Redis-Servertyp im Terminal mit dem Root-Benutzer
Die Meldung wird nach dem Stoppen des Redis-Servers angezeigt
Wenn Sie den Redis-Server-Typ starten möchten
Wenn Sie den Servertyp neu starten möchten
quelle
service --status-all
werden keine Redis angezeigt, daher schlägt jederservice
Befehl fehlredis-server
. Aber Redis zeigt sich inps -ef
. Ich kann einfach kein verwandtes Dokument finden.sudo service redis start/stop/status
genauso aus, beide gehen.Ein anderer Weg könnte sein:
Funktioniert unter * NIX & OSX
quelle
MacOSX - Es hat funktioniert :)
Schritt 1: Suchen Sie den zuvor ausgeführten Redis Server
Schritt 2: Beenden Sie den spezifischen Prozess, indem Sie die PID (Prozess-ID) ermitteln - Redis Sever
quelle
Wenn Sie wissen, auf welchem Port es ausgeführt wird (standardmäßig 6379), können Sie den folgenden Befehl verwenden, um die PID des Prozesses über diesen Port abzurufen, und dann den Befehl kill für dieselbe PID ausführen.
Der obige Befehl gibt Ihnen pid.
töten
<pid>
;Dies würde Ihren Server herunterfahren.
quelle
systemd, ubuntu 16.04:
quelle
Normalerweise tritt dieses Problem auf, nachdem ich meinen Computer auf unregelmäßige Weise heruntergefahren habe (oder laufen lasse). Ich glaube, der Port bleibt offen, während der Prozess stoppt, aber weiterhin an den vorherigen Port gebunden ist.
9/10 mal kann das Update sein:
Gut zu gehen.
quelle
In meinem Fall war es:
Um herauszufinden, wie Ihr Dienstname lautet, können Sie Folgendes ausführen:
Und es zeigt Ihnen alle Redis-Dateien in Ihrem System.
quelle
Wenn Sie während der Installation von redis eine Installation (z. B. Ubuntu) durchgeführt haben, können Sie Folgendes tun:
wie von @ yojimbo87 gezeigt :)
quelle
Ein anderer Weg könnte sein:
quelle
Das Folgende hat für mich auf MAC funktioniert
quelle
Wenn Sie Redis in einem Docker-Container ausführen, hilft keine der vorliegenden Antworten. Sie müssen den Redis-Container stoppen. Andernfalls wird der Redis-Prozess immer wieder neu gestartet.
quelle
Wenn Sie wissen, an welchem Port (Standard: 6379) Ihr Redis-Server ausgeführt wird, können Sie Option 1 wählen oder Ihren Redis-Prozess überprüfen und mit Option 2 beenden
Option 1:
Prozess am Port beenden:
Option 2:
Suchen Sie den zuvor ausgeführten Redis-Server:
Beenden Sie den spezifischen Prozess, indem Sie PID (Process ID) - Redis Sever finden
Starten Sie nun Ihren Redis-Server mit
quelle
Ich weiß nicht speziell für Redis, aber für Server im Allgemeinen:
Welches Betriebssystem oder welche Distribution? Oft gibt es einen Befehl stop oder /etc/init.d / ..., mit dem die vorhandene PID in einer PID-Datei nachgeschlagen werden kann.
Sie können nachschlagen, welcher Prozess bereits an den Port gebunden ist
sudo netstat -nlpt
(Linux-Optionen; andere Netstat-Varianten variieren) und signalisieren, dass er gestoppt werden soll. Ich würde nicht verwendenkill -9
auf einem laufenden Server , es sei denn es gibt wirklich kein anderes Signal oder Verfahren ist es herunterzufahren.quelle
Die folgenden Befehle funktionieren für mich unter Ubuntu Server
quelle
Unter MacOSX
Das hat bei mir funktioniert
quelle
Eine Sache, um zu überprüfen, ob die redis-Befehle für Sie nicht funktionieren, ist, ob Ihre redis-server.pid tatsächlich erstellt wird. Sie geben den Speicherort dieser Datei an
und es sollte einen Abschnitt haben, der ungefähr so aussieht:
Überprüfen Sie den Speicherort und die Berechtigungen des PIDFile-Verzeichnisses (in meinem Fall '/ run / redis'). Ich habe versucht, den als Bereitstellung angemeldeten Dienst neu zu starten, aber die Verzeichnisberechtigungen wurden als aufgeführt
drwxrwsr-x 2 redis redis 40 Jul 20 17:37 redis
Wenn Sie eine Auffrischung der Linux-Berechtigungen benötigen, überprüfen Sie dies . Das Problem war jedoch, dass ich den Neustart als Bereitstellungsbenutzer ausführte. Die oben genannten Berechtigungen lauten "rx", sodass mein Benutzer nicht in das PIDFile-Verzeichnis schreiben kann.
Als ich das merkte, loggte ich mich mit root ein, wiederholte den Neustartbefehl auf redis (
service redis restart
) und alles funktionierte. Das war ein Kopfschmerz, aber hoffentlich spart dies jemandem ein wenig Zeit.quelle
Redis hat einen Konfigurationsparameter
pidfile
(z. B. /etc/redis.conf - Redis-Quellcode überprüfen ), zum Beispiel:Wenn es gesetzt ist oder gesetzt werden könnte, könnte anstelle der Suche nach der Prozess-ID (pid) unter Verwendung der folgenden Optionen Folgendes
ps + grep
verwendet werden:Bei Bedarf kann man das Redis-Stop-Skript wie folgt erstellen (angepasstes Standard-Skript redis 5.0 init.d im Redis-Quellcode ):
quelle