Ошибка ioredis: подключите ETIMEDOUT - не удается подключиться к локальному серверу Redis

на моем сервере node.js я инициализировал сервер Redis:

const options = {
  host: process.env.REDIS_HOST, // localhost
  port: process.env.REDIS_PORT, // 6379 Redis standard port
  db: 0,
  // reconnect after
  retryStrategy: times => Math.min(times * 50, 2000),
  tls: {}
};

export const redis = new Redis(options);

К сожалению, я всегда получаю это сообщение об ошибке:

[ioredis] Unhandled error event: Error: connect ETIMEDOUT
    at TLSSocket.<anonymous> (/home/pascal/vipfy/vipfy-backend/node_modules/ioredis/built/redis.js:298:31)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at TLSSocket.EventEmitter.emit (domain.js:442:20)
    at TLSSocket.Socket._onTimeout (net.js:449:8)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

Я установил redis локально и использую redis-cli для проверки связи с локальным сервером, пароль не установлен. Он всегда дает положительный ответ, но я не могу получить его через ioredis. Есть у кого-нибудь идея?


person Gh05d    schedule 22.08.2019    source источник


Ответы (1)


Убедитесь, что ваш сервер Redis запущен. Вы просто попробуйте без параметров, поэтому он попытается автоматически подключить ваш localhost redis с помощью хоста как localhost и порта как 6379.

redis = new Redis();

Если у вас нет особых преимуществ, попробуйте следовать, я использую следующий и хорошо работает.

Пакет: "redis": "^2.8.0"

Код:

var redis = require('redis');
var redis_conn = redis.createClient();

redis_conn.set("key", "val");
person empr    schedule 22.08.2019
comment
Как написано выше, сервер работает, так как я успешно пропинговал его через redis-cli. Кроме того, я явно пробовал использовать localhost и порт 6379. Должен пояснить это в моем исходном комментарии. Пробовал ваш пример, но, к сожалению, это та же ошибка. Спасибо, в любом случае. - person Gh05d; 23.08.2019
comment
Похоже, моя проблема заключалась в том, что я не делал redis.createClient. При переходе на это вроде работает. - person Gh05d; 23.08.2019
comment
Хорошо @ Gh05d. Рад помочь. - person empr; 23.08.2019