如何在nodejs中检测客户端与redis的断开连接?

时间:2017-11-12 20:10:56

标签: javascript node.js performance redis node-redis

我正在使用库node_redis作为我正在编写的微服务消息客户端的客户端。客户端从他们的发件箱中获取需要发送到其他服务的消息。一切都很好,但我正在尝试使用redis客户端与redis-server进行通信的应用程序构建一些弹性。

我的想法是redis客户端 - 服务器连接状态应该对客户端高度可用。我的意思是,如果连接断开,我想知道在第二个而不是300秒的默认超时。目前我正在使用AWS上托管的免费redislabs层,但我应该将其移动到我的kubernetes集群上的自己的容器中运行。

我需要知道网络中客户端连接的状态,因为我不希望在网络状况不正确时发送消息,而不依赖于错误处理来处理这种事件。了解这些高延迟事件发生的频率和时间也将有助于我诊断和改进我的网络和我的微服务。

注意:我想在客户端选项中设置connect_timeout值,但这被列为已弃用。

1 个答案:

答案 0 :(得分:1)

类似的东西吗?

var redis = require('redis');
var client = redis.createClient();
var reconnectAfter = 15000;

client.on( 'error', function () {
  console.log( (new Date()) + " Redis: disconnect");
  setTimeout( connect, reconnectAfter);
});

connect = function(){
  client = redis.createClient();
}