A conexão do Redis com 127.0.0.1:6379 falhou - conecte ECONNREFUSED


133

Estou trabalhando com node.js por expressjs
Eu tento armazenar uma conta na sessão. Então, eu tento testar para usar a sessão com código no expressjs

var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: "keyboard cat", store: new RedisStore }));

mas eu tenho erro Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED.
Ajude-me a resolver este problema


3
Redis está em execução? Você pode se conectar a ele por outros meios, por exemplo, redis-cli?
um cara triste

3
Obrigado, porque o servidor redis não está funcionando. Eu instalo o redis-server, siga este tutorial
Huy Tran

Você deve instalar o servidor Redis em sua máquina e executá-lo. Não sei por que o autor não mencionou essa coisa importante no manual!
Emad Aghayi

2
Como adiciono redis-server ao meu aplicativo Heroku do nó? Eu também tenho o mesmo erro.
amar ghodke

Respostas:


224

Depois de instalar o redis, digite from terminal:

redis-server

e você terá redis em execução


3
Para mim, devo especificar o conf, então digito >> (sudo) redis-server /etc/redis/redis.conf
Romanos 8.38-39

4
Obrigado. Estúpido como no tutorial eles nunca mencionaram como iniciar o servidor redis!
Codious-JR

8
redis-server --daemonize yespara executar em segundo plano
Morteza Ziyae

61

Eu resolvo esse problema da próxima maneira:

sudo apt-get install redis-server

Em seguida, execute o comando para confirmar que está tudo bem:

sudo service redis-server status

E a saída será: redis-server is running- isso significa que o problema está resolvido.


1
esse erro foi corrigido, mas agora aparece um novo erro, ou seja, "Erro: ERR número errado de argumentos para o comando 'set'"
vineet

1
Obrigado! isso resolveu o problema, apenas uma pequena observação nos ambientes Linux / WSL após a instalação, execute novamente o comando redis-serverou prefixe-o pelo sudo, se necessário. Se tudo correr bem, você verá a mensagem redis-server cli. também pode ser verificado sudo service redis-server statuscomo sugerido por @author.
just-be-weird

32

Instale o redis no seu sistema primeiro -

brew install redis

depois inicie o servidor redis -

redis-server


12

Solução simples:

basta clicar abaixo e recomendar uma vez e reiniciar o servidor novamente

redis-server

4

Eu também tenho o mesmo problema, primeiro tentei reiniciar o redis-server, sudo service restartmas o problema ainda permanecia. Então eu removi redis-serverpor sudo apt-get purge redis-servere instalá-lo novamente sudo apt-get install redis-servere, em seguida, os redis estava trabalhando novamente. Também vale a pena dar uma olhada no redis log, localizado aqui/var/log/redis/redis-server.log


4

para usuários do Windows, você pode usar chocolatey para instalar o Redis

choco install redis-64

então execute o servidor de

C:\ProgramData\chocolatey\lib\redis-64\redis-server.exe



1

Para a plataforma Windows, você deve verificar se redis-serverestá sendo executado em determinado ip: port. você pode encontrar a configuração redis no diretório de instalação /conf/redis.conf. por padrão, o cliente aceita 127.0.0.1:6379.


1

Estou no MBP e instalei os detalhes do redis, meu problema foi resolvido. Corrigido o Download, extraia e compila o Redis com:

$ wget http://download.redis.io/releases/redis-3.0.2.tar.gz

$ tar xzf redis-3.0.2.tar.gz

$ cd redis-3.0.2

$ make

Os binários que agora são compilados estão disponíveis no diretório src.

Execute o Redis com:

$ src/redis-server 

1

Sua conexão com redis está falhando. Tente reiniciar o servidor redis e, em seguida, reinicie o cliente executando estes 3 comandos:

sudo service redis-server restart
redis-server
redis-cli

3
Por favor, explique sua resposta. Atualmente, ele é visto como um post de baixa qualidade. Obrigado!
Dropout

eu tenho esse erro no ubuntu ... resolver com este commands..now ele está funcionando bem .....
balakumaran

1

Eu acho que talvez você tenha instalado o redis pelo código fonte. Se precisar localizar o redis-source-code-path / utils e executar o sudo install_server.shcomando. Depois disso, verifique se o redis-server está sendo executado como um serviço para o seu sistema sudo service redis-server status

PS: baseado no Debian / Ubuntu


1

No caso do ubuntu, o erro ocorre porque o redis-server não está sendo configurado. Instale o redis-server novamente e verifique o status.

Se não houver erro, uma mensagem como esta seria exibida: -

● redis-server.service - Armazenamento avançado de valores-chave Carregado: carregado (/lib/systemd/system/redis-server.service; ativado; predefinição de fornecedor: ativado) Ativo: ativo (em execução) desde qua 2018-01-17 20 : 07: 27 IST; 16s ago Docs: http://redis.io/documentation , man: redis-server (1) PID principal: 4327 (redis-server) CGroup: /system.slice/redis-server.service └─4327 / usr / bin / redis-server 127.0.0.1:6379


1

Você precisa instalar o servidor redis primeiro;

Você pode instalar o servidor redis no mac, seguindo a etapa -

  $ curl -O http://download.redis.io/redis-stable.tar.gz
  $ tar xzvf redis-stable.tar.gz
  $ cd redis-stable
  $ make
  $ make test
  $ sudo make install
  $ redis-server

Boa sorte.


Esteja ciente: isso levará algum tempo para ser executado. Se você tiver um gerente de dependência (distribuição ou outro), isso economizará tempo.
lukas_o

0

Para mim, eu tive esse problema no Ubuntu 18.x, mas meu problema era que meu servidor redis estava executando no 127.0.0.1, mas descobri que precisava executá-lo no meu endereço IP xxx.xx.xx.xx

Entrei na minha máquina Ubuntu e fiz o seguinte.

cd /etc/redis/

sudo vim redis.conf

Então eu editei esta parte.

################################## NETWORK #####################################

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all the network interfaces available on the server.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only into
# the IPv4 loopback interface address (this means Redis will be able to
# accept connections only from clients running into the same computer it
# is running).le to listen to just one or multiple selected interfaces using
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# bind 127.0.0.1 ::1 10.0.0.1
bind 127.0.0.1 ::1 # <<-------- change this to what your iP address is something like (bind 192.168.2.2)

Salve isso e reinicie o redis-server.

sudo service redis-server restart ou simplesmente corra redis-server


-5

Tente atualizar seu nó para a versão mais recente.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

versão 0.4 pode não funcionar corretamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.