Подключение Redis к 127.0.0.1:6379 не удалось - подключите ECONNREFUSED


133

Я работаю с node.js с помощью expressjs.
Я пытаюсь сохранить учетную запись для сеанса. Итак, я пытаюсь протестировать использование сеанса с кодом в 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 }));

но я получил ошибку Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED.
Пожалуйста, помогите мне решить эту проблему


3
Redis работает? Можете ли вы подключиться к нему другими способами, например, redis-cli?
грустный чувак

3
Спасибо, потому что сервер Redis не запущен. Я устанавливаю redis-server, следуя этому руководству
Хай Тран,

Вы должны установить сервер Redis на свой компьютер и запустить его. Не знаю, почему автор не упомянул эту важную вещь в инструкции!
Emad Aghayi

2
Как мне добавить redis-сервер для моего приложения Heroku node? У меня тоже такая же ошибка.
amar ghodke

Ответы:


225

После установки Redis введите в терминале:

redis-server

и у вас будет запущен Redis


3
Для меня я должен указать conf, поэтому я набираю >> (sudo) redis-server /etc/redis/redis.conf
Римлянам 8.38-39

4
Спасибо. Глупо, как в учебнике никогда не упоминалось, как запустить сервер Redis!
Codious-JR

8
redis-server --daemonize yesработать в фоновом режиме
Morteza Ziyae

61

Решаю эту проблему следующим образом:

sudo apt-get install redis-server

затем запустите команду, чтобы убедиться, что все в порядке:

sudo service redis-server status

И на выходе будет: redis-server is running- это означает, что проблема решена.


1
эта ошибка исправлена, но теперь отображается новая ошибка, например: «Ошибка: ERR неправильное количество аргументов для команды 'set'»
Vineet

1
Спасибо! это решило проблему, просто небольшое примечание о средах Linux / WSL после установки повторно запустите команду redis-serverили префикс sudo, если необходимо. Если все пойдет хорошо, вы увидите сообщение cli redis-server. также можно проверить, sudo service redis-server statusпредложив @author.
just-be-weird

33

Сначала установите Redis в свою систему -

brew install redis

затем запустите сервер Redis -

redis-server


12

Простое решение:

только нажмите ниже рекомендовать один раз и перезапустите сервер снова

redis-server

4

У меня тоже такая же проблема, сначала я попытался перезапустить redis-server, sudo service restartно проблема осталась. Затем я снял с redis-serverпомощью sudo apt-get purge redis-serverи установить его снова , sudo apt-get install redis-serverа затем Redis работал снова. Также стоит взглянуть на журнал Redis, который находится здесь/var/log/redis/redis-server.log


4

для пользователей Windows вы можете использовать шоколад для установки Redis

choco install redis-64

затем запустите сервер из

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



1

Для платформы Windows вы должны проверить, redis-serverработает ли он на заданном ip: порту. вы можете найти конфигурацию Redis в каталоге установки /conf/redis.conf. по умолчанию клиент принимает 127.0.0.1:6379.


1

Я нахожусь на MBP и устанавливаю Redis, моя проблема была решена. Исправлена ​​загрузка, извлечение и компиляция Redis с помощью:

$ 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

Скомпилированные двоичные файлы доступны в каталоге src.

Запустите Redis с:

$ src/redis-server 

1

Ваше соединение с Redis не работает. Попробуйте перезапустить сервер Redis, а затем снова запустить клиент, выполнив следующие 3 команды:

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

3
Пожалуйста, объясните свой ответ. В настоящее время он рассматривается как пост низкого качества. Спасибо!
Отсев

я получил эту ошибку в ubuntu ... решите с помощью этих команд ... теперь он работает нормально ...
Балакумаран

1

Я думаю, что, возможно, вы установили redis с помощью исходного кода. Если вам нужно найти redis-source-code-path / utils и запустить sudo install_server.shкоманду. После этого убедитесь, что redis-server работает как служба вашей системы. sudo service redis-server status

PS: на основе Debian / Ubuntu


1

В случае ubuntu ошибка связана с тем, что redis-server не настроен. Снова установите redis-server и проверьте его статус.

Если ошибки нет, то будет отображено подобное сообщение: -

● redis-server.service - Расширенное хранилище ключей и значений. Загружено: загружено (/lib/systemd/system/redis-server.service; включено; предустановка поставщика: включено) Активно: активно (работает) с 17 января 2018 г. 20 : 07: 27 IST; 16с назад Документы: http://redis.io/documentation , man: redis-server (1) Основной PID: 4327 (redis-server) CGroup: /system.slice/redis-server.service └─4327 / usr / bin / redis-server 127.0.0.1:6379


1

Сначала вам нужно установить сервер Redis;

Вы можете установить сервер Redis на Mac, выполнив следующий шаг -

  $ 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

Удачи.


Имейте в виду: это займет некоторое время. Если у вас есть менеджер зависимостей (brew или другой), это сэкономит ваше время.
lukas_o

0

У меня была эта проблема на Ubuntu 18.x, но моя проблема заключалась в том, что мой redis-сервер работал на 127.0.0.1, но я обнаружил, что мне нужно запустить его на моем IP-адресе xxx.xx.xx.xx

Я зашел в свою машину с Ubuntu и сделал следующее.

cd /etc/redis/

sudo vim redis.conf

Потом отредактировал эту часть.

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

Сохраните это, а затем перезапустите redis-server.

sudo service redis-server restart или просто запустить redis-server


-5

Попробуйте обновить свой узел до последней версии.

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

версия 0.4 может работать некорректно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.