我想在发布时设置redis pub / sub消息的过期时间。我如何在nodeJS中做到这一点?
var redis = require('redis');
redis.createClient().publish('some channel', 'some message', function(err) {
if (err) {
console.error('error publishing:', err);
}
});
上面提供消息的代码。我必须做些什么更改来设置已发布消息的到期时间。
答案 0 :(得分:2)
每条消息都会立即过期,您无法更改它。要使其工作方式不同,需要添加消息缓存,在发布后将其保留一段时间,并将其重新发布给已经发布后订阅的任何订阅者。
这不是PubSub在Redis中的工作方式。您可以将其视为与事件有些相似。事件监听器可以监听evets,事件发射器可以发出事件。但是没有事件到期时间的概念。某些侦听器在发出或不发出时会监听它。发布商和订阅者也是如此。
答案 1 :(得分:1)
Redis中发布的消息不会以任何方式保留,因此它们没有到期时间。
这样做的另一个后果是,如果没有特定消息的订阅者,则该消息将丢失。