185 votes

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

J'utilise 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

Note : J'ai essayé de désactiver le pare-feu et de modifier le fichier conf, mais je ne peux toujours pas faire de ping. J'utilise macOS Sierra et la version 1.1.11 de homebrew.

423voto

LuFFy Points 3695

Après l'installation redis , type de terminal :

redis-server

Et le serveur Redis sera démarré

2 votes

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

1 votes

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

6 votes

Pour Windows, à partir de l'invite de commande, cd C:\Program Files\Redis et ensuite redis-server

56voto

Aaron Points 2249

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

En fonction de la fraîcheur de votre machine ou de votre installation, il est probable qu'il manque 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 à l'adresse /usr/local/etc/redis.conf . Sans ce fichier redis-server ne démarre 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 avez besoin /usr/local/var/db/redis/ d'exister. Vous pouvez le faire facilement avec

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

Enfin, il suffit de redémarrer redis avec brew services restart redis .

Comment le découvrir ?

J'ai perdu beaucoup de temps à essayer de comprendre si redis n'utilisait pas les valeurs par défaut de homebrew et sur quel port il était. Les services étaient trompeurs car même si redis-server n'avait pas encore commencé, brew services list afficherait toujours redis comme étant "démarré". La meilleure approche est d'utiliser brew services --verbose start redis qui vous indiquera que le fichier journal se trouve à l'adresse suivante /usr/local/var/log/redis.log . En cherchant là-dedans, j'ai trouvé le(s) pistolet(s) fumant(s)

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

o

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

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

Ne puis-je pas simplement courir redis-server ?

Bien sûr que si. Il occupera juste un terminal ou interrompra votre terminal de temps en temps si vous exécutez redis-server & . De plus, il mettra dump.rdb dans le répertoire dans lequel vous l'exécutez ( pwd ). Je me suis ennuyé à devoir supprimer le fichier ou l'ignorer dans git, alors je me suis dit que j'allais laisser brew faire le travail avec les services.

0 votes

Merci, cela a résolu mon problème sur un projet laravel où j'obtenais une connexion refusée dans abstractconnection.php ligne 155.

0 votes

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

0 votes

Commencer par verbose a fait l'affaire pour moi. J'avais un problème dans redis.conf. Merci d'avance.

25voto

mySun Points 790

Si, après l'installation, vous devez exécuter redis à tout moment, il suffit de taper dans terminal :

redis-server &

Exécuter redis avec upstart sur Ubuntu

J'ai essayé de comprendre comment configurer des systèmes à partir de zéro sur Ubuntu. Je viens d'installer redis Voici comment j'ai procédé et ce à quoi il faut faire attention.

Pour l'installation :

sudo apt-get install redis-server

Cela créera un redis et installer le init.d script pour cela. Depuis upstart remplace désormais init.d, je me suis dit qu'il fallait le convertir pour qu'il fonctionne avec upstart .

Pour désactiver l'option par défaut init.d script pour redis :

sudo update-rc.d redis-server disable

Créez ensuite /etc/init/redis-server.conf avec 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

Ceci est le script pour upstart pour savoir quelle commande exécuter pour lancer le processus. La dernière ligne indique également à upstart de continuer à essayer de réapparaître s'il meurt.

Une chose que j'ai dû changer dans /etc/redis/redis.conf es daemonize yes a daemonize no . Que se passe-t-il si vous ne le changez pas ? redis-server va se forker et se démoniser, et le processus parent disparaît. Lorsque cela se produit, upstart pense que le processus est mort/arrêté et que vous n'aurez pas le contrôle du 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 vous a été utile !

9voto

user4675117 Points 11

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

Tout d'abord, vérifiez l'adresse IP du serveur redis comme suit.

ps -ef | grep redis

Le résultat est en quelque sorte " redis 1184 1 0 .... /usr/bin/redis-server 172.x.x.x:6379

Ensuite, vous pouvez vous connecter à redis avec l'option -h(hostname) comme ceci.

redis-cli -h 172.x.x.x

2voto

Talu Points 36

Dans mon cas, il s'agissait du mot de passe qui contenait des caractères comme ' Après l'avoir modifié, le serveur a démarré sans problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X