如何重新连接redis连接?

Bdf*_*dfy 7 node.js

我有一个简单的例子:

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();
Run Code Online (Sandbox Code Playgroud)

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

Jas*_*ith 14

Redis客户端自动重新连接.只需确保您"error"从客户端处理事件.根据例子:

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

否则,此代码是流程开始的位置.

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");
Run Code Online (Sandbox Code Playgroud)

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

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