可以设置redis发布/订阅消息的过期时间

时间:2017-05-23 11:53:59

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

我想在发布时设置redis pub / sub消息的过期时间。我如何在nodeJS中做到这一点?

var redis = require('redis');

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

上面提供消息的代码。我必须做些什么更改来设置已发布消息的到期时间。

2 个答案:

答案 0 :(得分:2)

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

这不是PubSub在Redis中的工作方式。您可以将其视为与事件有些相似。事件监听器可以监听evets,事件发射器可以发出事件。但是没有事件到期时间的概念。某些侦听器在发出或不发出时会监听它。发布商和订阅者也是如此。

答案 1 :(得分:1)

Redis中发布的消息不会以任何方式保留,因此它们没有到期时间。

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