Połączenie Redis z 127.0.0.1:6379 nie powiodło się - połącz ECONNREFUSED


138

Pracując z node.js przez expressjs
, próbuję zapisać konto do sesji. Więc próbuję przetestować sesję z kodem w 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 }));

ale mam błąd Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED.
Pomóż mi rozwiązać ten problem


3
Czy Redis działa? Czy możesz się z nim połączyć w inny sposób, np. Redis-cli?
smutny gość

3
Dziękuję, ponieważ serwer redis nie działa. Instaluję serwer redis zgodnie z tym samouczkiem
Huy Tran

Powinieneś zainstalować serwer Redis na swoim komputerze i uruchomić go. Nie wiem, dlaczego autor nie wspomniał o tej ważnej rzeczy w instrukcji!
Emad Aghayi

2
Jak dodać serwer redis dla mojej aplikacji Node Heroku? Mam też ten sam błąd.
amar ghodke

Odpowiedzi:


228

Po zainstalowaniu redis wpisz z terminala:

redis-server

i będziesz mieć uruchomiony Redis


3
Dla mnie powinienem określić conf, więc wpisuję >> (sudo) redis-server /etc/redis/redis.conf
Romans 8.38-39

4
Dziękuję Ci. Głupie, jak w samouczku nigdy nie wspomnieli, jak uruchomić serwer redis!
Codious-JR

8
redis-server --daemonize yesdo działania w tle
Morteza Ziyae

64

Rozwiązuję ten problem w następujący sposób:

sudo apt-get install redis-server

następnie uruchom polecenie, aby potwierdzić, że wszystko w porządku:

sudo service redis-server status

Wynik będzie następujący: redis-server is running- to znaczy, że problem został rozwiązany.


1
ten błąd został naprawiony, ale teraz pojawia się nowy błąd, np. „Błąd: ERR zła liczba argumentów dla polecenia 'set'”
vinet

1
Dzięki! rozwiązało to problem, wystarczy mała uwaga na temat środowisk Linux / WSL po zainstalowaniu, ponownie uruchom polecenie redis-serverlub w razie potrzeby wprowadź przedrostek sudo. Jeśli wszystko pójdzie dobrze, zostanie wyświetlony komunikat cli redis-server. można również zweryfikować sudo service redis-server statuszgodnie z sugestią @author.
po prostu bądź dziwny

33

Najpierw zainstaluj redis w swoim systemie -

brew install redis

następnie uruchom serwer redis -

redis-server



4

Mam też ten sam problem, najpierw próbowałem zrestartować serwer redis, sudo service restartale problem nadal się utrzymywał. Następnie usunąłem redis-servergo sudo apt-get purge redis-serveri zainstalowałem ponownie, sudo apt-get install redis-servera następnie redis znów działał. Warto też rzucić okiem na znajdujący się tutaj dziennik redis/var/log/redis/redis-server.log


4

dla użytkowników systemu Windows możesz użyć chocolatey do zainstalowania Redis

choco install redis-64

następnie uruchom serwer z

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



1

W przypadku platformy Windows należy sprawdzić, czy redis-serverdziała na podanym IP: porcie. konfigurację Redis można znaleźć w katalogu instalacyjnym /conf/redis.conf. domyślnie klient akceptuje 127.0.0.1:6379.


1

Jestem na MBP i szczegółowo zainstaluj redis, mój problem został rozwiązany.Poprawiono pobieranie, rozpakowywanie i kompilowanie Redis za pomocą:

$ 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

Skompilowane pliki binarne są dostępne w katalogu src.

Uruchom Redis z:

$ src/redis-server 

1

Twoje połączenie z redis nie działa. Spróbuj ponownie uruchomić serwer redis, a następnie ponownie uruchom klienta, uruchamiając te 3 polecenia:

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

3
Proszę wyjaśnij swoją odpowiedź. Obecnie jest postrzegany jako post niskiej jakości. Dzięki!
Rezygnacja

mam ten błąd w ubuntu ... rozwiąż za pomocą tych poleceń ... teraz działa dobrze .....
Balakumaran

1

Myślę, że może zainstalowałeś redis przez kod źródłowy.Jeśli potrzebujesz zlokalizować redis-source-code-path / utils i uruchomić sudo install_server.shpolecenie. Następnie upewnij się, że redis-server działa jako usługa dla twojego systemu sudo service redis-server status

PS: oparty na Debianie / Ubuntu


1

W przypadku Ubuntu błąd jest spowodowany brakiem konfiguracji serwera redis. Zainstaluj ponownie serwer redis, a następnie sprawdź stan.

Jeśli nie ma błędu, zostanie wyświetlony następujący komunikat: -

● redis-server.service - Zaawansowany magazyn wartości kluczy Załadowano: załadowano (/lib/systemd/system/redis-server.service; włączone; ustawienie dostawcy: włączone) Aktywne: aktywne (działa) od śr. 17.01.2018 20 : 07: 27 IST; 16 s temu Dokumenty: http://redis.io/documentation , man: redis-server (1) Główny PID: 4327 (redis-server) CGroup: /system.slice/redis-server.service └─4327 / usr / bin / redis-server 127.0.0.1:6379


1

Najpierw musisz zainstalować serwer redis;

Możesz zainstalować serwer Redis na komputerze Mac, wykonując następujące czynności -

  $ 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

Powodzenia.


Uwaga: to zajmie trochę czasu. Jeśli masz menedżera zależności (napar lub inny), pozwoli to zaoszczędzić czas.
lukas_o

0

Miałem ten problem na Ubuntu 18.x, ale mój problem polegał na tym, że mój serwer redis działał na 127.0.0.1, ale okazało się, że muszę go uruchomić na moim adresie IP xxx.xx.xx.xx

Wszedłem do mojej maszyny Ubuntu i wykonałem następujące czynności.

cd /etc/redis/

sudo vim redis.conf

Potem zredagowałem tę część.

################################## 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)

Zapisz to, a następnie uruchom ponownie serwer redis.

sudo service redis-server restart lub po prostu biegnij redis-server


-5

Spróbuj zaktualizować swój węzeł do najnowszej wersji.

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

wersja 0.4 może nie działać poprawnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.