node.js - Node JS Redis 客户端连接重试

标签 node.js redis node-redis reconnect

目前我正在使用 https://github.com/mranney/node_redis作为我的 Node redis 客户端。

client.retry_delay 默认设置为 250 毫秒。

我尝试连接到 redis,连接成功后,我手动停止了 redis 服务器以查看 client.retry_delay 是否有效。但我没有看到它起作用。

以下日志消息记录在使用 createClient 创建的 redisClient 上的 readyend 事件上:

[2012-03-30 15:13:05.498] [INFO] Development - Node Application is running on port 8090
[2012-03-30 15:13:08.507] [INFO] Development - Connection Successfully Established to  '127.0.0.1' '6379'
[2012-03-30 15:16:33.886] [FATAL] Development - Connection Terminated to  '127.0.0.1' '6379'

当服务器重新上线时,我没有再次看到成功消息 [ready event was not fired]。

我错过了什么吗?什么时候使用重试常量?是否有解决方法来查找在 Node 出现故障后是否出现了 Redis 服务器?

最佳答案

我无法重现这个。你能试试这个代码,停止你的 redis 服务器,然后检查日志输出吗?

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

client.on('connect'     , log('connect'));
client.on('ready'       , log('ready'));
client.on('reconnecting', log('reconnecting'));
client.on('error'       , log('error'));
client.on('end'         , log('end'));

function log(type) {
    return function() {
        console.log(type, arguments);
    }
}

关于node.js - Node JS Redis 客户端连接重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940873/

相关文章:

redis - 不完整的相交redis集

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

javascript - eslint 禁用扩展覆盖

node.js - node-debug 不会中断并且不显示任何代码

rest - 扩展 REST API - 架构

redis - 收到错误接收到类型为 'mytasks.add' 的未注册任务

node.js - 如何在 koa-route 中使用通配符

node.js - 谷歌 OAuth : App or Server?

node.js - 如何从 Redis 存储客户端的键/值对中的值中获取键?

node.js - 交互式地执行操作并且它有效。以编程方式执行相同的操作,但失败了。 Redis、heroku、 Node