Impossible de se connecter à Redis à 127.0.0.1:6379: connexion refusée avec homebrew


120

En utilisant homebrew pour installer Redis, mais lorsque j'essaie d'envoyer un ping à Redis, il affiche cette erreur:

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

Remarque: j'ai essayé de désactiver le pare-feu et de modifier le fichier de configuration, mais je ne peux toujours pas cingler. J'utilise macOS Sierra et homebrew version 1.1.11

Réponses:


281

Après l'installation redis, tapez à partir de terminal:

redis-server

Et Redis-Server sera lancé


1
Cependant, comment puis-je l'empêcher d'écouter ce port / hôte?
Afolabi Olaoluwa Akinwumi

@AfolabiOlaoluwaAkinwumi Veuillez vous référer Comment puis-je arrêter le serveur
redis

3
Pour les fenêtres à partir de l'invite de commande, cd C:\Program Files\Redispuis redis-server
Pradeep Kumar Prabaharan

2
comment exécuter redis-server en continu en arrière-plan, j'utilise ubuntu @LuFFy
AATHITH RAJENDRAN

1
@AATHITHRAJENDRAN, vérifiez cette réponse , j'espère que cela vous aidera
LuFFy

37

J'ai trouvé cette question en essayant de comprendre pourquoi je ne pouvais pas me connecter à redis après l'avoir démarré via brew services start redis.

tl; dr

Selon la fraîcheur de votre machine ou de l'installation, il vous manque probablement un fichier de configuration ou un répertoire pour les valeurs par défaut de Redis.

  1. Vous avez besoin d'un fichier de configuration sur /usr/local/etc/redis.conf. Sans ce fichier redis-serverne démarrera pas. Vous pouvez copier le fichier de configuration par défaut et le modifier à partir de là avec

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Vous devez /usr/local/var/db/redis/exister. Vous pouvez le faire facilement avec

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

Enfin, redémarrez simplement redis avec brew services restart redis.

Comment trouvez-vous cela!?

J'ai perdu beaucoup de temps à essayer de déterminer si Redis n'utilisait pas les valeurs par défaut via homebrew et sur quel port il était. Les services étaient trompeurs, car même s'ils redis-servern'avaient pas réellement démarré, brew services listils afficheraient toujours les redis comme «démarrés». La meilleure approche consiste à utiliser brew services --verbose start redisce qui vous montrera que le fichier journal se trouve à /usr/local/var/log/redis.log. En regardant là-dedans, j'ai trouvé le (s) pistolet (s) fumant

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

ou

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

Heureusement, le journal a rendu la solution ci-dessus évidente.

Je ne peux pas simplement courir redis-server?

Vous pouvez certainement. Cela prendra juste un terminal ou interrompra votre terminal de temps en temps si vous exécutez redis-server &. De plus, il placera dump.rdbdans le répertoire dans lequel vous l'exécutez ( pwd). Je suis ennuyé de devoir supprimer le fichier ou de l'ignorer dans git, alors j'ai pensé que je laisserais brew faire le travail avec les services.


merci, cela a résolu mon problème sur un projet laravel où la connexion était refusée dans abstractconnection.php ligne 155
luckyguy73

J'avais aussi une erreur dans la ligne 155 abstractconnection.php! Fou.
Kevin Gagnon

Commencer avec bavard a fait la chose pour moi. J'avais un problème dans redis.conf. Merci
SangamAngre

18

Si après l'installation, vous devez fonctionner redisà tout moment, tapez simplement le terminal:

redis-server &

Exécuter Redis en utilisant Upstart sur Ubuntu

J'ai essayé de comprendre comment configurer les systèmes à partir de zéro sur Ubuntu. Je viens de l'installer redissur la boîte et voici comment je l'ai fait et quelques points à surveiller.

À installer:

sudo apt-get install redis-server

Cela créera un redisutilisateur et installera le init.dscript correspondant. Puisque upstartc'est maintenant le remplacement de l'utilisation de init.d, je pense que je devrais le convertir pour l'exécuter en utilisant upstart.

Pour désactiver le init.dscript par défaut pour redis:

sudo update-rc.d redis-server disable

Créez ensuite /etc/init/redis-server.confavec le script suivant:

description "redis server"

start on runlevel [23]
stop on shutdown

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

respawn

À quoi sert le script pour upstartsavoir quelle commande exécuter pour démarrer le processus. La dernière ligne dit également upstartde continuer à essayer de réapparaître s'il meurt.

Une chose que j'ai dû changer /etc/redis/redis.confest daemonize yesde daemonize no. Que se passe-t-il si vous ne le modifiez pas, alors redis-serverse forkera et se démonisera, et le processus parent disparaîtra. Lorsque cela se produit, upstartpense que le processus est mort / arrêté et que vous n'aurez pas le contrôle sur le processus de l'intérieur upstart.

Vous pouvez maintenant utiliser les commandes suivantes pour contrôler votre redis-server:

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

J'espère que cela a été utile!


9

C'est la meilleure façon de se connecter à votre redis.

Dans un premier temps, vérifiez l'adresse IP du serveur redis comme ceci.

ps -ef | grep redis

Le résultat est une sorte de "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Et puis vous pouvez vous connecter à redis avec l'option -h (nom d'hôte) comme ceci.

redis-cli -h 172.xxx


2

Dans mon cas, c'était le mot de passe qui contenait des caractères comme ', après l'avoir changé, le serveur a démarré sans problème.


1

J'ai juste eu ce même problème parce que j'avais utilisé une syntaxe incorrecte dans mon fichier de configuration. Je voulais ajouter:

maxmemory-policy allkeys-lru

à mon fichier de configuration, mais seulement ajouté:

allkeys-lru

ce qui a évidemment empêché Redis d'analyser le fichier de configuration, ce qui m'a empêché de me connecter via le cli. La correction de cette syntaxe m'a permis de me connecter à Redis.


1

Si ce problème avec homebrew MacOSle problème était une sorte d'autorisation manquante sur le /usr/local/var/logrépertoire, voir le problème ici

Afin de le résoudre, j'ai supprimé /usr/local/var/loget réinstaller redisbrew reinstall redis


1

Vous devez d'abord activer / démarrer tous les nœuds redis en utilisant la commande ci-dessous, un par un pour tous les fichiers de configuration. @Remarque: si vous configurez un cluster, vous devriez avoir 6 nœuds, 3 seront maîtres et 3 seront esclaves.redis-cli sélectionnera automatiquement le maître et l'esclave sur 6 nœuds en utilisant la commande --cluster comme indiqué dans mes commandes ci-dessous .

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

puis courir

[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

la sortie de ci-dessus devrait être comme:

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

2ème façon de tout configurer automatiquement: vous pouvez utiliser des scripts utils / create-cluster pour tout configurer à votre place, comme démarrer tous les nœuds, créer un cluster que vous suivez https://redis.io/topics/cluster-tutorial

Merci


1

Ce travail pour moi:

sudo service redis-server start

1

Tout comme Aaron , dans mon cas, j'ai brew services listprétendu que Redis fonctionnait, mais ce n'était pas le cas. J'ai trouvé les informations suivantes dans mon fichier journal à l'adresse /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

Cela s'avère être dû à la configuration suivante:

bind 127.0.0.1 ::1 192.168.161.1

qui était nécessaire pour donner à ma machine virtuelle VMWare Fusion l'accès au serveur redis sur macOS, l'hôte. Cependant, si la machine virtuelle n'était pas démarrée, cet échec de liaison empêchait Redis de démarrer du tout . Le démarrage de la machine virtuelle a donc résolu le problème.


1

Essaye ça :

sudo service redis-server restart

J'utilise Windows WSL Ubuntu et continue de recevoir des erreurs dans mon terminal. npm ERR! code ELIFECYCLE npm ERR! errno 1 Donc tout essayé sur le dessus, cela ne fonctionne pas surtout sous Windows. C'est pourquoi j'ai essayé de redémarrer le service redis sur Ubuntu et fonctionne parfaitement bien! C'est tout.
Jhune Carlo Trogelio
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.