7

我有一个简单的例子:

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

var test = function() {
    client.brpop('log', 0, function(err, reply) {
        if (err != null ) {
            console.log(err);
        }    else {
            .... parse log string ....
        }
        test();
    });
}

test();

重启redis服务器后如何重新连接redis连接?

4

1 回答 1

16

Redis 客户端会自动重新连接。只要确保您处理"error"来自客户端的事件。根据示例

var redis = require('redis');
client = redis.createClient();
client.on('error', function(err){ 
  console.error('Redis error:', err); 
});

否则,此代码就是流程开始的地方。

this.emit("error", new Error(message));
// "error" events get turned into exceptions if they aren't listened for.  If the user handled this error
// then we should try to reconnect.
this.connection_gone("error");

接下来,.connection_gone()方法在客户端上运行。

请注意,您还可以"reconnecting"在发生这种情况时收听要通知的事件。

于 2012-06-04T11:01:11.533 回答