我想在发布时为redis pub/sub消息设置过期时间。如何在nodeJS中实现?
var redis = require('redis');
redis.createClient().publish('some channel', 'some message', function(err) {
if (err) {
console.error('error publishing:', err);
}
});上面是推送消息的代码。要设置已发布消息的过期时间,我必须做哪些更改。
发布于 2017-05-23 21:22:34
每条消息都会立即过期,您无法更改它。要让它以不同的方式工作,需要添加消息的缓存,在消息发布后将它们保留一段时间,并将它们重新发布给任何在发布后订阅的订阅者。
这不是PubSub在Redis中的工作方式。您可以将其视为与事件有些相似。事件侦听器可以侦听evets,事件发射器可以发出事件。但是没有事件的到期时间的概念。一些侦听器要么在发出时侦听它,要么不侦听它。发布者和订阅者也是如此。
发布于 2017-05-23 20:54:46
Redis中发布的消息不会以任何方式持久化,因此它们没有过期时间。
这样做的另一个后果是,如果特定消息没有任何订阅者,则该消息将丢失。
https://stackoverflow.com/questions/44134104
复制相似问题