我是否需要使用.quit()退出节点redis客户端实例?

看下面的代码(摘自git页面)

var redis  = require("redis"),

client = redis.createClient(), multi;

// runs immediately

client.mset("incr thing", 100, "incr other thing", 1, redis.print);

multi = client.multi();

// drains multi queue and runs atomically

multi.exec(function (err, replies) {

console.log(replies); // 101, 2

client.quit(); // IS THIS OPTIONAL?

});

我想知道client.quit()是可选的,还是multi.exec()自动为我执行退出?我正在尝试调试Redis中的内存泄漏,但我意识到我没有在任何地方使用.quit()。我可以做?

意思是,我的代码应该像这样吗?

client = redis.createClient();

multi = clent.multi();

multi.exec( {something} );

client.quit();

基本上,client.quit会放在哪里,我什至需要它?

回答:

“多条命令排队,直到发出EXEC,然后Redis自动运行所有命令。”

这是来自github的示例:

// multi chain with an individual callback

client.multi()

.scard("bigset")

.smembers("bigset")

.keys("*", function (err, replies) {

client.mget(replies, redis.print);

})

.dbsize()

.exec(function (err, replies) {

console.log("MULTI got " + replies.length + " replies");

replies.forEach(function (reply, index) {

console.log("Reply " + index + ": " + reply.toString());

});

});

您的问题:我需要使用client.quit()吗?是的,您需要这样做,因为在重新启动Redis服务器之前,您的Redis连接不会关闭。您应该client.quit()在所有过程完成后使用。(例如,在您的上一个回调中)

以上是 我是否需要使用.quit()退出节点redis客户端实例? 的全部内容, 来源链接: utcz.com/qa/410800.html

回到顶部