Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否需要使用.quit()退出节点redis客户端实例?_Node.js_Redis - Fatal编程技术网

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

Node.js 是否需要使用.quit()退出节点redis客户端实例?,node.js,redis,Node.js,Redis,查看下面的代码(摘自) 我想知道client.quit()是可选的,还是multi.exec()自动为我执行退出?我试图调试redis中的内存泄漏,但我意识到我没有在任何地方使用.quit()。我应该是吗 意思是,我的代码应该是这样的吗 client = redis.createClient(); multi = clent.multi(); multi.exec( {something} ); client.quit(); 基本上,client.quit在哪里?我需要它吗?“多个命令排队,直

查看下面的代码(摘自)

我想知道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()
。(例如,在上次回调中)

我在项目中不使用client.quit。此外,如果在redis处理完成后不调用client.unref()、.quit()或.end(),则访问redis的命令行程序将无法完成。相反,程序将在完成后挂起,大概是等待与redis的连接关闭。
// 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());
        });
    });