Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 可以设置redis发布/订阅消息的过期时间_Node.js_Redis_Publish Subscribe_Node Redis - Fatal编程技术网

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

Node.js 可以设置redis发布/订阅消息的过期时间,node.js,redis,publish-subscribe,node-redis,Node.js,Redis,Publish Subscribe,Node Redis,我想在发布时设置redis发布/订阅消息的过期时间。我如何在nodeJS中完成它 var redis = require('redis'); redis.createClient().publish('some channel', 'some message', function(err) { if (err) { console.error('error publishing:', err); } }); 上面是pusblish消息的代码。要设置已发布邮件的过期时间,我

我想在发布时设置redis发布/订阅消息的过期时间。我如何在nodeJS中完成它

var redis = require('redis');

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

上面是pusblish消息的代码。要设置已发布邮件的过期时间,我必须做哪些更改

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


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

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


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

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


这不是PubSub在Redis中的工作方式。你可以把它想象成有点类似于事件。事件侦听器可以侦听事件,事件发射器可以发出事件。但并没有关于事件过期时间的概念。某些侦听器要么在它发出时侦听,要么不侦听。发布者和订阅者也是如此。

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

这不是PubSub在Redis中的工作方式。你可以把它想象成有点类似于事件。事件侦听器可以侦听事件,事件发射器可以发出事件。但并没有关于事件过期时间的概念。某些侦听器要么在它发出时侦听,要么不侦听。出版商和订阅者也是如此