当前位置: 首页 > 面试题库 >

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

徐凌
2023-03-14
问题内容

看下面的代码(摘自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()在所有过程完成后使用。(例如,在您的上一个回调中)



 类似资料:
  • 我正在使用JSch将文件传输到远程服务器。我已将其配置为使用sftp通道,用户/密码和StricHostKeyChecking设置为“否”。由于我将开放通道设置为sftp,JSch是否要求在客户端计算机上安装sftp/ssh客户端?

  • 我正在计划一个新的星火集群。我的问题是我需要在所有数据节点上安装spark worker节点吗?例如,如果我有50个数据节点,而我只安装了10个spark worker节点,这合理吗?谢了!

  • 情况: Node 0:安装了mapr客户端,不是集群的一部分,没有安装外部资源 Node 1到10:安装了mapr NodeManager的mapr集群节点。每个节点都安装了 /mnt/resource/下的外部资源 如果我在从1到10的任何节点上执行此代码,它都可以工作:<code>hadoop distcpfile:///mnt/resource/file maprfs:///tmp 当我在节

  • 我使用testAd ID(ca-app-pub-3940256099942544/1033173712)从admob不是我的admob ID,我需要使用addTestDevice()太,而在移动设备测试?它甚至显示了测试广告屏幕,而不是实时广告。 因为我这样做了,我整天都在使用我的应用程序进行测试,晚上我收到了账户暂停邮件。

  • 问题内容: 我是否需要从HttpServletResponse“刷新”输出流? 我已经从看到了,应该关闭servlet输出流吗?我不需要关闭它,但是尚不清楚是否需要冲洗它。我也应该从容器中得到吗? 问题答案: 不用了 servletcontainer将为您刷新并关闭它。顺便说一句,关闭已经隐式调用了flush。 另请参阅Servlet 3.1规范的 5.6章: 关闭响应后,容器必须立即将响应缓冲区

  • 问题内容: 我正在尝试向Drive API发出使用服务帐户模拟用户的请求,但出现异常。 我已经按照https://developers.google.com/identity/protocols/OAuth2ServiceAccount中的说明进行了操作: 在https://console.developers.google.com中,创建一个项目>凭证>服务帐户> P12文件; 启用的Drive