Redis не держит соединение открытым - PullRequest
0 голосов
/ 04 июля 2019

У меня постоянно работает служба NodeJS, я создаю одного клиента на сервере Redis, если этот сервер Redis не работает, я получаю сообщение

Error: Redis connection to localhost:7000 failed - connect ECONNREFUSED 127.0.0.1:7000

Даже если я не вызываю какой-либо метод на этом клиенте Redis, я предполагаю, что это потому, что Redis поддерживает модель Pub / Sub, Мне не нужна эта функциональность, хотя. Сервер Redis может быть недоступен по каким-либо причинам. Поэтому я хотел бы просто ответить с ошибкой, если это когда-либо имеет место, но после нескольких тайм-аутов, когда клиент завершает работу, есть ли способ поддержать клиента, даже если Redis недоступен? Могу ли я отключить это, я могу сказать Redis игнорировать его или установить предел ошибочного запроса в бесконечность? Я не хочу создавать нового Клиента для каждого запроса, так как эта операция очень ресурсоемкая.

Если вы сейчас убьете Redis во время его работы, вы получите вывод, подобный указанному выше. Минимальное воспроизводимое:

const express = require('express');
var _redis = require('redis');

const redisPort = 7000;
const redisService = "localhost";
const app = express();

var redis = _redis.createClient(redisPort, redisService,{
  no_ready_check: true
});

app.get('/test', async(req, res) => {
      redis.set(1, "Helloworld"); 
})
app.listen(7999, () => {
});
redis.on("error", function (err) {
    console.log("Error " + err);
  });
...