【问题标题】:NodeJS & Redis Timeout trigger from Redis来自 Redis 的 NodeJS 和 Redis 超时触发器
【发布时间】:2014-09-23 18:19:14
【问题描述】:

我想制作一个基于集群的 NodeJS 脚本,它有 8 个或更多工作人员。该脚本在独立时使用SetTimeout,并且计时器内部存储在 NodeJS 脚本中。现在我必须对此做点什么,我想也许我可以使用 redis 过期并以某种方式在密钥过期时从 redis 调用一个函数?

谁能给我一个小例子吗?还有一个问题:这有多可靠?

【问题讨论】:

    标签: node.js redis timeout


    【解决方案1】:

    如果您使用的是 Redis 2.8.0+,则有 keyspace notifications。这些使用 Redis 中现有的 pubsub 机制,因此您可以简单地订阅这些各种通知。

    您确实需要确保启用这些通知,因为默认情况下它们是禁用的。您可以通过更改您的 redis.conf 配置文件来实现此目的,以获得永久解决方案,或者您可以通过 Redis CLI 使用 CONFIG SET notify-keyspace-events EKx 之类的内容临时启用它。您也可以从 redis 模块启用它,例如:

    client.config('set', 'notify-keyspace-events', 'EKx', function(err) {
      if (err) throw err;
    });
    

    【讨论】:

    • 谢谢。这有很大帮助。表演呢?例如处理 200k 定时器可以吗?
    • 这很难说,但您可以轻松地对其进行测试,看看它是否会成为您用例的问题。
    • 简单的测试表明,100 万个定时器在 10 分钟内可以正常工作。再次感谢您
    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    相关资源
    最近更新 更多