在实际开发工作中,经常会遇到消息发布、订阅的应用场景,就好象是电台广播,只要你收听了某个频道,那么在这个频道上播放的内容你都能够听到,没有收听的自然也就听不到,很多开源工具都对这种设计模式有很好的支持,比如RabbitMQ中就有Pub/Sub消息队列。同样Redis也支持这种模式的消息发布,而且非常简单。在我的实际工作中,只用到过三个命令就能实现消息发布与订阅:
1.publish channel message
定义一个channel并在其上发布消息,例如:
这里定义了news,并在news上发布了hello消息,返回值是1,说明有一个订阅者收到了发布的消息,如果有多个订阅者,会将显示所有订阅者的数量。
2.subscribe channel
订阅一个channel上的消息,例如:
这里订阅了news,上面在news上发布的hello消息在这里会被自动输出。
3.psubscribe pattern
该命令是采用通配符方式订阅channel,比如:psubscribe new*,不仅可以订阅news,也可以同时订阅newstop这样的channnel。