2017-05-23 14 views
1

게시 중에 redis pub/sub 메시지에 만료 시간을 설정하려고합니다. nodeJS에서 어떻게합니까?redis pub/sub 메시지의 만료 시간을 설정할 수 있습니다.

var redis = require('redis'); 

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

메시지를 pusblish하는 코드는 위입니다. 게시 된 메시지의 만료 시간을 설정하기 위해 모든 변경 사항을 수행해야합니다.

답변

1

Redis의 게시 된 메시지는 어떤 방식으로도 유지되지 않으므로 만료 시간이 없습니다.

또 다른 결과는 특정 메시지에 대한 구독자가없는 경우 메시지가 손실된다는 것입니다.

2

모든 메시지가 즉시 만료되며 변경할 수 없습니다. 메시지를 다르게 작동하게하려면 메시지 캐시를 추가해야합니다. 메시지를 게시 한 후 특정 시간 동안 유지하고 이미 게시 한 후에 구독 한 모든 구독자에게 다시 게시해야합니다.

이것은 Redis에서 PubSub이 작동하는 방식이 아닙니다. 이벤트와 다소 비슷한 것으로 생각할 수 있습니다. 이벤트 리스너는에 벳 (evets)을들을 수 있으며 이벤트 이미 터는 이벤트를 내보낼 수 있습니다. 그러나 이벤트의 만료 시간에 대한 개념은 없습니다. 일부 청취자는 방출되는 동안 청취합니다. 게시자와 구독자에게도 마찬가지입니다.