No se pudo conectar a Redis en 127.0.0.1:6379: Conexión rechazada con homebrew

120

Usando homebrew para instalar Redis, pero cuando intento hacer ping a Redis, muestra este error:

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

Nota: Traté de apagar el firewall y editar el archivo conf pero todavía no puedo hacer ping. Estoy usando macOS Sierra y homebrew versión 1.1.11

bufei
fuente

Respuestas:

281

Después de la instalación redis, escriba desde terminal:

redis-server

Y se iniciará Redis-Server

LuFFy
fuente
1
Sin embargo, ¿cómo evito que escuche ese puerto / host?
Afolabi Olaoluwa Akinwumi
@AfolabiOlaoluwaAkinwumi Consulte ¿Cómo puedo detener el servidor
redis?
3
Para Windows desde el símbolo del sistema, cd C:\Program Files\Redisy luego redis-server
Pradeep Kumar Prabaharan
2
cómo ejecutar redis-server continuamente en segundo plano, estoy usando ubuntu @LuFFy
AATHITH RAJENDRAN
1
@AATHITHRAJENDRAN, marque esta respuesta , espero que ayude
LuFFy
37

Encontré esta pregunta mientras intentaba averiguar por qué no podía conectarme a redis después de iniciarlo a través de brew services start redis .

tl; dr

Dependiendo de qué tan fresca sea su máquina o instalación, es probable que le falte un archivo de configuración o un directorio para los valores predeterminados de redis.

  1. Necesita un archivo de configuración en /usr/local/etc/redis.conf. Sin este archivo redis-serverno se iniciará. Puede copiar el archivo de configuración predeterminado y modificarlo desde allí con

    cp /usr/local/etc/redis.conf.default /usr/local/etc/redis.conf
    
  2. Necesitas /usr/local/var/db/redis/existir. Puedes hacer esto fácilmente con

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

Finalmente, simplemente reinicie redis con brew services restart redis .

¿¡Cómo averiguas esto !?

Perdí mucho tiempo tratando de averiguar si redis no estaba usando los valores predeterminados a través de homebrew y en qué puerto estaba. Los servicios eran engañosos porque, aunque redis-serverno se habían iniciado en realidad, brew services listseguían mostrando redis como "iniciado". El mejor enfoque es usar el brew services --verbose start redisque le mostrará que el archivo de registro está en /usr/local/var/log/redis.log. Mirando allí encontré la (s) pistola (s) humeante (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

Afortunadamente, el registro hizo que la solución anterior fuera obvia.

¿No puedo simplemente correr redis-server?

Seguro que puedes. Solo ocupará una terminal o interrumpirá su terminal ocasionalmente si ejecuta redis-server &. También pondrá dump.rdben cualquier directorio en el que lo ejecutes ( pwd). Me molestó tener que eliminar el archivo o ignorarlo en git, así que pensé que dejaría que brew hiciera el trabajo con los servicios.

Aaron
fuente
gracias, esto resolvió mi problema en un proyecto de laravel en el que obtenía la conexión rechazada en abstractconnection.php línea 155
luckyguy73
¡También estaba teniendo un error en la línea 155 de abstractconnection.php! Loco.
Kevin Gagnon
Empezar con verboso hizo lo mejor para mí. Estaba teniendo un problema en redis.conf. Gracias
SangamAngre
18

Si después de la instalación necesita ejecutar redistodo el tiempo, simplemente escriba terminal:

redis-server &

Ejecutando redis usando upstart en Ubuntu

He estado tratando de entender cómo configurar sistemas desde cero en Ubuntu. Acabo de instalarredis en la caja y así es como lo hice y algunas cosas a tener en cuenta.

Instalar:

sudo apt-get install redis-server

Eso creará un redisusuario e instalará el init.dscript para él. Dado upstartque ahora es el reemplazo para usar init.d, supongo que debería convertirlo para ejecutar usando upstart.

Para deshabilitar el init.dscript predeterminado para redis:

sudo update-rc.d redis-server disable

Luego crea /etc/init/redis-server.confcon el siguiente script:

description "redis server"

start on runlevel [23]
stop on shutdown

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

respawn

Para qué sirve este script para upstartsaber qué comando ejecutar para iniciar el proceso. La última línea también diceupstart que sigas intentando reaparecer si muere.

Una cosa que tenía que cambiar en /etc/redis/redis.confes daemonize yesa daemonize no. Lo que sucede si no lo cambia, redis-serverse bifurcará y se demonizará a sí mismo, y el proceso padre desaparecerá. Cuando esto sucede, upstartpiensa que el proceso ha muerto / se detuvo y no tendrá control sobre el proceso desde dentroupstart .

Ahora puede usar los siguientes comandos para controlar su redis-server:

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

¡Espero que esto haya sido útil!

mi sol
fuente
9

Es la mejor forma de conectarse a su redis.

Al principio, verifique la dirección IP del servidor redis de esta manera.

ps -ef | grep redis

El resultado es una especie de "redis 1184 1 0 .... / usr / bin / redis-server 172.xxx:6379

Y luego puede conectarse a redis con la opción -h (nombre de host) como esta.

redis-cli -h 172.xxx

jihyun
fuente
2

En mi caso, era la contraseña que contenía algunos caracteres como ', luego de cambiarla el servidor arrancaba sin problemas.

Talu
fuente
1

Acabo de tener este mismo problema porque había usado una sintaxis incorrecta en mi archivo de configuración. Quise agregar:

maxmemory-policy allkeys-lru

a mi archivo de configuración, pero en su lugar solo agregué:

allkeys-lru

lo que evidentemente impidió que Redis analizara el archivo de configuración, lo que a su vez me impidió conectarme a través del archivo cli. Arreglar esta sintaxis me permitió conectarme a Redis.

duhaime
fuente
1

Si ese problema con homebrew MacOSel problema era que faltaba algún tipo de permiso en el /usr/local/var/logdirectorio, consulte el problema aquí

Para solucionarlo /usr/local/var/logeliminé y reinstalé redisbrew reinstall redis

zetacu
fuente
1

Primero debe activar / iniciar todos los nodos de redis usando el siguiente comando, uno por uno para todos los archivos conf. @Nota: si está configurando un clúster, entonces debería tener 6 nodos, 3 serán maestros y 3 serán esclavos.redis-cli seleccionará automáticamente maestro y esclavo de 6 nodos usando el comando --cluster como se muestra en mis comandos a continuación .

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

entonces corre

[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 salida de arriba debería ser como:

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

Segunda forma de configurar todo automáticamente: puede usar scripts utils / create-cluster para configurar todo para usted, como iniciar todos los nodos, crear un clúster para usted y seguir https://redis.io/topics/cluster-tutorial

Gracias

Sanjay
fuente
1

Este trabajo para mi:

sudo service redis-server start
zahra
fuente
1

Al igual que Aaron , en mi caso brew services listafirmó que redis se estaba ejecutando, pero no lo estaba. Encontré la siguiente información en mi archivo de registro en /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

Eso resulta ser causado por la siguiente configuración:

bind 127.0.0.1 ::1 192.168.161.1

que era necesario para que mi máquina virtual VMWare Fusion tuviera acceso al servidor de redis en macOS, el host. Sin embargo, si la máquina virtual no se inició, este error de enlace provocó que redis no se iniciara en absoluto . Entonces, iniciar la máquina virtual resolvió el problema.

Glorfindel
fuente
1

Prueba esto :

sudo service redis-server restart
Jhune Carlo Trogelio
fuente
Estoy usando Windows WSL Ubuntu y sigo recibiendo errores en mi terminal. npm ERR! código ELIFECYCLE npm ERR! errno 1 Así que intenté todo en la parte superior, no funciona especialmente en Windows. ¡Es por eso que intenté reiniciar el servicio redis en Ubuntu y funciona perfectamente bien! Eso es todo.
Jhune Carlo Trogelio