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

标签 javascript node.js performance redis node-redis

我正在使用图书馆 node_redis作为我正在编写的微服务消息客户端的客户端。客户端从他们的发件箱中的应用程序获取消息,他们需要将这些消息发送到其他服务。一切都运行良好,但我正在尝试在使用 redis 客户端与 redis 服务器通信的应用程序部分建立一些弹性。

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

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

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

最佳答案

类似的东西?

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();
}

关于javascript - 如何检测客户端与nodejs中的redis断开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47253429/

相关文章:

javascript - 使用 Zurb Foundation 4 时如何在移动设备上切换到桌面 View ?

javascript - ES6中React类定义方法的两种方式有什么区别

javascript - 如何从 CLI 执行 es6 脚本

node.js - PhantomJS 设置浏览器时区设置

!isset() 与 === null 的 PHP 性能

Javascript 将 setTimeOut 链接到 Promise,寻找一个非常示例的示例

javascript - 基于 req.user 验证用户是否是管理员是否安全?

node.js - typescript : Uncaught ReferenceError :未定义变形

python - 无法在 python 中将数据对象与 timeit.Time 模块一起使用

c++ - 如何在这个 c++ 数据结构中处理快速插入-删除操作?