我只是想知道,在我的NodeJS流程开始时,是否启动了Redis(因此用户会话将被存储或不存储).
这就是我现在所拥有的:
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var redis = require("redis");
var client = redis.createClient(global.redis.host, global.redis.port);
// Check if redis is running
var redisIsReady = false;
client.on('error', function(err) {
redisIsReady = false;
console.log('redis is not running');
console.log(err);
});
client.on('ready', function() {
redisIsReady = true;
console.log('redis is running');
});
// Here I use express-session, but I want to set a store only if redis is ready
sessOptions = {
[...]
}
// Store setting
if (redisIsReady) {
sessOptions.store …
Run Code Online (Sandbox Code Playgroud) 目前我使用https://github.com/mranney/node_redis作为我的节点redis客户端.
client.retry_delay
默认设置为250毫秒.
我尝试连接到redis,一旦连接成功,我手动停止redis服务器以查看client.retry_delay是否有效.但我没有看到它有效.
将记录以下日志消息ready
以及end
使用createClient创建的redisClients 上的事件
[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'
Run Code Online (Sandbox Code Playgroud)
当服务器重新启动时,我没有再看到成功消息[就绪事件未被触发]
我错过了什么吗?何时使用重试常数?是否有工作来查找redis服务器是否在节点发生故障后出现?