【问题标题】:Can to set expire time for a redis pub/sub message可以为 redis 发布/订阅消息设置过期时间
【发布时间】:2017-05-23 11:53:58
【问题描述】:

我想在发布时为 redis 发布/订阅消息设置过期时间。我在 nodeJS 中怎么做?

var redis = require('redis');

redis.createClient().publish('some channel', 'some message', function(err) {  
  if (err) {
    console.error('error publishing:', err);
  }
});

上面是发布消息的代码。我必须做哪些更改才能设置已发布消息的到期时间。

【问题讨论】:

    标签: node.js redis publish-subscribe node-redis


    【解决方案1】:

    每条消息都会立即过期,您无法更改它。要使其以不同的方式工作,需要添加消息的缓存,在它们发布后将它们保留一段时间,然后将它们重新发布给在它们已经发布后订阅的任何订阅者。

    这不是 PubSub 在 Redis 中的工作方式。你可以认为它有点类似于事件。事件侦听器可以侦听事件,事件发射器可以发出事件。但是没有事件到期时间的概念。一些听众要么在它被发射时听它,要么不听它。发布者和订阅者也是如此。

    【讨论】:

      【解决方案2】:

      Redis 中发布的消息不会以任何方式持久化,因此它们没有过期时间。

      这样做的另一个后果是,如果特定消息没有任何订阅者,则该消息将丢失。

      【讨论】:

        猜你喜欢
        • 2017-10-02
        • 2015-03-01
        • 2016-04-18
        • 1970-01-01
        • 1970-01-01
        • 2011-11-17
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        相关资源
        最近更新 更多