一、发布和订阅
除了任务队列以外,redis 还有一种基于 「发布/订阅」 模式的消息传递,使得客户端可以订阅某个频道,当频道有消息产生时,会把消息传递到所有的订阅者。和列表不一样的是,发布和订阅可以是一对多的关系,即同一个消息可以同时传递到多个客户端 (订阅者) 。而列表只能允许一个客户端接收一个消息。
订阅和退订的命令是 PUBLISH/SUBSCRIBE,PUBLISH 是向频道发送消息,SUBSCRIBE 是订阅频道。
1.1 发布
往指定频道发布消息的操作:
|
1 |
PUBLISH channel message |
消息发送成功后,将会返回一个整数,表示收到这条消息的订阅者数量,如果没有任何客户端订阅频道,返回 0 。
一个要注意的问题是消息发布后不会被持久化,如果当前没有订阅者订阅频道,后续再订阅也不会收到订阅前的消息。