PubSub-Redis的消息多播

Posted by ShiYu on 2018-10-31

Redis5种基本类型无法支持消息多播,它单独提供了一个模块来支持消息多播,这个模块就是PubSub,也就是PublisherSubscriber(发布者订阅者模型)。

基本使用

  1. 启动一个消费者,开启订阅;
1
subscribe test  //订阅test队列
  1. 启动一个生产者,推送消息。
1
publish test message1

致命问题o(╥﹏╥)o

PubSub生产者pushlish消息时,如果订阅者不在线,那么消息直接丢弃掉了,如果有3个订阅者,突然有一个挂掉了,生产者继续发送消息,另外两个可以持续收到消息,但是挂掉的订阅者重新连上时,期间生产者发送的消息依然收不到,且PubSub消息时不会持久化的,如果Redis重启,所有消息都被丢弃了,想象不到有什么场景是pubsub能够胜任的o(╥﹏╥)o。