【问题标题】:How to set read timeout on node redis client?如何在节点 redis 客户端上设置读取超时?
【发布时间】:2015-11-29 16:31:54
【问题描述】:

在 github 上我没有看到读取超时的选项,https://github.com/NodeRedis/node_redis

connect_timeout,但那是为了建立联系,而不是读/写。

【问题讨论】:

  • 如果你不能读/写你就不会被连接......似乎它是在连接/重新连接/连接超时逻辑中处理的。延迟会非常低 - 您是否担心低于 100 毫秒的延迟?
  • @pherris 在我看来,读/写操作可能需要很长时间(我想知道为什么......),而目标是让这些操作超时。但是,鉴于 Redis 本身并没有这样的机制(AFAIK),我认为它无法正确实现(我认为您不能取消读/写)。

标签: node.js redis node-redis


【解决方案1】:

没有内置选项,但您可以使用超时处理程序包装您的调用。 请参阅问题here,以及链接的答案要点here

【讨论】:

    【解决方案2】:

    如果您真的想要某个特定方法的超时值(在您的情况下为 GET),您可以尝试其他答案中提到的技巧,但如果您的问题是因为该方法只是挂起而不是在无法连接时抛出异常到服务器,您可以将enable_offline_queue 设置为false。这将使所有 Redis 命令立即抛出异常,因此您可以继续执行剩余代码,而不是等待当前命令超时(Node Redis 的默认值为 60 分钟,它会持续重试连接 1 小时)。

    请记住,当enable_offline_queue 设置为 false 时,您在与服务器存在连接问题时发出的命令将永远不会被执行。

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 2015-12-28
      • 2012-11-03
      • 2016-02-20
      • 2019-07-25
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 2015-09-25
      相关资源
      最近更新 更多