为了在使用redis npm 包时进行可靠的连接检查,您应该使用重试逻辑,处理就绪事件,并在必要时 ping 到内脏检查。
重试
在创建客户端时,自动有一个默认重试策略,但是您可以传入options object 和retry_strategy 来自定义它:
const client = require('redis').createClient({
retry_strategy: function(options) {
if (options.error && options.error.code === "ECONNREFUSED") {
// End reconnecting on a specific error
return new Error("The server refused the connection");
}
if (options.total_retry_time > 1000 * 60 * 60) {
// End reconnecting after a specific timeout
return new Error("Retry time exhausted");
}
if (options.attempt > 10) {
// End reconnecting with built in error
return undefined;
}
// reconnect after
return Math.min(options.attempt * 100, 3000);
},
});
准备好了
创建客户端后,您应该先监听connection and other events,然后再进行如下操作:
var client = require('redis').createClient();
client.on('connect' , () => console.log('connect'));
client.on('ready' , () => console.log('ready'));
client.on('reconnecting', () => console.log('reconnecting'));
client.on('error' , () => console.log('error'));
client.on('end' , () => console.log('end'));
平
正如redis包文档中提到的,在节点客户端和official redis commands之间有一个1 to 1 mapping of commands,所以你可以像这样调用ping来做一个最终的冒烟测试:
var client = require('redis').createClient();
client.on('ready', () => {
let response = client.ping()
console.log(response)
// do other stuff
});
进一步阅读