Verbindung zu Redis konnte um 127.0.0.1:6379 nicht hergestellt werden: Verbindung mit Homebrew abgelehnt


120

Wenn Sie Redis mit Homebrew installieren, wird beim Versuch, Redis zu pingen, der folgende Fehler angezeigt:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

Hinweis: Ich habe versucht, die Firewall auszuschalten und die Conf-Datei zu bearbeiten, kann aber immer noch nicht pingen. Ich verwende macOS Sierra und Homebrew Version 1.1.11

Antworten:


281

Geben Sie nach der Installation redisFolgendes ein terminal:

redis-server

Und Redis-Server wird gestartet


1
Wie kann ich jedoch verhindern, dass dieser Port / Host abgehört wird?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi Bitte verweisen Wie kann ich Redis-Server stoppen
LuFFy

3
Für Fenster von der Eingabeaufforderung cd C:\Program Files\Redisund dann redis-server
Pradeep Kumar Prabaharan

2
Wie man Redis-Server kontinuierlich im Hintergrund laufen lässt, verwende ich Ubuntu @LuFFy
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN, Überprüfen Sie diese Antwort , ich hoffe, es wird helfen
LuFFy

37

Ich habe diese Frage gefunden, als ich versucht habe herauszufinden, warum ich nach dem Starten über keine Verbindung zu Redis herstellen konnte brew services start redis.

tl; dr

Je nachdem, wie frisch Ihr Computer oder Ihre Installation ist, fehlt Ihnen wahrscheinlich eine Konfigurationsdatei oder ein Verzeichnis für die Redis-Standardeinstellungen.

  1. Sie benötigen eine Konfigurationsdatei unter /usr/local/etc/redis.conf. Ohne diese Datei redis-serverwird nicht gestartet. Sie können die Standardkonfigurationsdatei kopieren und von dort mit ändern

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Du musst /usr/local/var/db/redis/existieren. Sie können dies leicht mit tun

    mkdir -p /usr/local/var/db/redis
    

Zum Schluss einfach Redis mit neu starten brew services restart redis .

Wie findest du das heraus?

Ich habe viel Zeit damit verschwendet, herauszufinden, ob Redis die Standardeinstellungen nicht über Homebrew verwendet und an welchem ​​Port sie sich befinden. Services waren irreführend, da Redis, obwohl sie redis-servernoch nicht gestartet wurden, brew services listimmer noch als "gestartet" angezeigt werden. Der beste Ansatz ist die Verwendung, brew services --verbose start redisdie Ihnen zeigt, dass sich die Protokolldatei befindet /usr/local/var/log/redis.log. Als ich dort hineinschaute, fand ich die rauchende (n) Waffe (n)

Fatal error, can't open config file '/usr/local/etc/redis.conf'

oder

Can't chdir to '/usr/local/var/db/redis/': No such file or directory

Zum Glück machte das Protokoll die obige Lösung offensichtlich.

Kann ich nicht einfach rennen redis-server?

Sie können sicher. Es nimmt nur ein Terminal in Anspruch oder unterbricht Ihr Terminal gelegentlich, wenn Sie ausgeführt werden redis-server &. Außerdem wird es dump.rdbin das Verzeichnis gestellt, in dem Sie es ausführen ( pwd). Ich ärgerte mich, dass ich die Datei entfernen oder in Git ignorieren musste, also dachte ich mir, ich würde Brew die Arbeit mit Diensten machen lassen.


danke, dies löste mein Problem bei einem Laravel-Projekt, bei dem mir die Verbindung in abstractconnection.php Zeile 155 verweigert wurde
happyguy73

Ich hatte auch einen Fehler in der Zeile 155 von abstractconnection.php! Verrückt.
Kevin Gagnon

Beginnen Sie mit wortreich hat das Ding für mich gemacht. Ich hatte ein Problem in redis.conf. Danke
SangamAngre

18

Wenn Sie nach der Installation immer laufen müssen redis, geben Sie einfach Terminal ein:

redis-server &

Ausführen von Redis mit Upstart unter Ubuntu

Ich habe versucht zu verstehen, wie man Systeme unter Ubuntu von Grund auf einrichtet. Ich habe gerade installiertredis auf der Box und hier ist, wie ich es gemacht habe und einige Dinge, auf die ich achten muss.

Installieren:

sudo apt-get install redis-server

Dadurch wird ein redisBenutzer erstellt und das init.dSkript dafür installiert . Da upstartes jetzt der Ersatz für die Verwendung von init.d ist, sollte ich es konvertieren, um es mit auszuführenupstart .

So deaktivieren Sie das Standardskript init.dfür redis:

sudo update-rc.d redis-server disable

Dann erstellen Sie /etc/init/redis-server.confmit dem folgenden Skript:

description "redis server"

start on runlevel [23]
stop on shutdown

exec sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf

respawn

Wofür dies das Skript ist, um upstartzu wissen, welcher Befehl ausgeführt werden muss, um den Prozess zu starten. Die letzte Zeile sagt auchupstart man weiterhin versuchen soll, wieder zu erscheinen, wenn es stirbt.

Eine Sache, die ich ändern musste, /etc/redis/redis.confist daemonize yeszu daemonize no. Was passiert, wenn Sie es nicht ändern, redis-serverwird sich selbst verzweigen und dämonisieren, und der übergeordnete Prozess verschwindet. Wenn dies passiert, upstartdenken Sie, dass der Prozess gestorben / gestoppt ist und Sie keine Kontrolle über den Prozess von innen habenupstart .

Jetzt können Sie die folgenden Befehle verwenden, um Ihre zu steuern redis-server:

sudo start redis-server
sudo restart redis-server
sudo stop redis-server

Hoffe das war hilfreich!


9

Dies ist der bessere Weg, um eine Verbindung zu Ihren Redis herzustellen.

Überprüfen Sie zunächst die IP-Adresse des Redis-Servers wie folgt.

ps -ef | grep redis

Das Ergebnis ist eine Art "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Und dann können Sie mit der Option -h (Hostname) wie folgt eine Verbindung zu redis herstellen.

redis-cli -h 172.xxx


2

In meinem Fall war es das Passwort, das einige Zeichen enthielt, wie 'nach dem Ändern startete der Server ohne Probleme.


1

Ich hatte gerade das gleiche Problem, weil ich in meiner Konfigurationsdatei eine falsche Syntax verwendet hatte. Ich wollte hinzufügen:

maxmemory-policy allkeys-lru

zu meiner Konfigurationsdatei, aber stattdessen nur hinzugefügt:

allkeys-lru

Dies hat Redis offensichtlich daran gehindert, die Konfigurationsdatei zu analysieren, was mich wiederum daran gehindert hat, eine Verbindung über die CLI herzustellen. Durch das Korrigieren dieser Syntax konnte ich eine Verbindung zu Redis herstellen.


1

Hatte dieses Problem mit homebrew MacOSdem Problem eine Art Berechtigung, die im /usr/local/var/logVerzeichnis fehlte, siehe Problem hier

Um es zu lösen, habe ich das gelöscht /usr/local/var/logund redis neu installiertbrew reinstall redis


1

Zuerst müssen Sie alle Redis-Knoten mit dem folgenden Befehl einzeln für alle conf-Dateien starten / starten. @Hinweis: Wenn Sie einen Cluster einrichten, sollten Sie 6 Knoten haben, 3 sind Master und 3 sind Slave. Redis-cli wählt automatisch Master und Slave aus 6 Knoten mit dem Befehl --cluster aus, wie in den folgenden Befehlen gezeigt .

[xxxxx@localhost redis-stable]$ redis-server xxxx.conf 

dann renne

[xxxxx@localhost redis-stable]$ redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

Die Ausgabe von oben sollte wie folgt aussehen:

    >>> Performing hash slots allocation on 6 nodes...

2. Möglichkeit, alle Dinge automatisch einzurichten: Sie können Utils / Create-Cluster-Skripte verwenden, um alles für Sie einzurichten, z. B. alle Knoten zu starten und einen Cluster zu erstellen, dem Sie folgen https://redis.io/topics/cluster-tutorial

Vielen Dank


1

Diese Arbeit für mich:

sudo service redis-server start

1

Genau wie Aaron , in meinem Fall brew services listbehauptete Redis lief, aber es war nicht. Ich habe die folgenden Informationen in meiner Protokolldatei unter gefunden /usr/local/var/log/redis.log:

4469:C 28 Feb 09:03:56.197 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
4469:C 28 Feb 09:03:56.197 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=4469, just started
4469:C 28 Feb 09:03:56.197 # Configuration loaded
4469:M 28 Feb 09:03:56.198 * Increased maximum number of open files to 10032 (it was originally set to 256).
4469:M 28 Feb 09:03:56.199 # Creating Server TCP listening socket 192.168.161.1:6379: bind: Can't assign requested address

Dies wird durch die folgende Konfiguration verursacht:

bind 127.0.0.1 ::1 192.168.161.1

Dies war erforderlich, um meiner virtuellen VMWare Fusion-Maschine Zugriff auf den Redis-Server unter macOS, dem Host, zu gewähren. Wenn die virtuelle Maschine jedoch nicht gestartet wurde, führte dieser Bindungsfehler dazu, dass Redis nicht gestartet wurde überhaupt . Das Starten der virtuellen Maschine löste das Problem.


0

Versuche dies :

sudo service redis-server restart

Ich verwende Windows WSL Ubuntu und erhalte immer wieder Fehler in meinem Terminal. npm ERR! Code ELIFECYCLE npm ERR! errno 1 Also alles oben ausprobiert, es funktioniert nicht besonders unter Windows. Aus diesem Grund wurde versucht, den Redis-Dienst unter Ubuntu neu zu starten, und es funktioniert einwandfrei! Das ist alles.
Jhune Carlo Trogelio
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.