Redis提供了BRPOP,使发送方/接收方模型可以保证交付。
发件人: LPUSH foo_key bar_value
收件人: BRPOP foo_key ###
=>'bar_value'
其中###是任意到期间隔,例如15秒。
但是,如果消息有两个接收者,该怎么办?我考虑过以下选项:
您如何设置具有实时,有保证的交付的多客户接收器模型?
在我的架构中,只有一条消息将通过特定键发送,因此不存在客户端意外两次收到同一消息的危险。
我意识到我可以使用BRPOPLPUSH来实现这一目标。
发件人: LPUSH foo_key bar_value
随后是EXPIRE foo_key ###
收件人: BRPOPLPUSH foo_key foo_key ###
=> bar_value
与以前一样,每个###都是某个任意的到期间隔,例如15秒。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句