發布訂閱中使用到的命令就只有三個:PUBLISH,SUBSCRIBE,PSUBSCRIBE
- PUBLISH 用於發布消息
- SUBSCRIBE 也叫頻道訂閱,用於訂閱某一特定的頻道
- PSUBSCRIBE 也叫模式訂閱,用於訂閱某一組頻道,使用glob的方式,比如xxx-*可以匹配xxx-a,和xxx-b,xxx-ddd等等
訂閱頻道: pubsub_channels
關聯操作:
- 如果已經存在訂閱者,則添加到鏈表的尾部
- 如果沒有訂閱者,那么創建頻道,然后添加訂閱者
刪除操作:
- 找到對應的鏈表,進行刪除
- 如果刪除后,鏈表為空,則刪除頻道
模式訂閱: pubsub_patterns
client-7訂閱music.*
client-8訂閱book.*
client-9訂閱news.*
訂閱模式:
- 新建一個pubsubPattern結構
- 添加到鏈表的尾部
退訂模式:
- 查找相應的pubsubPattern然后刪除
發送消息:
- 將消息發送給channel頻道的所有訂閱者
- 遍歷整個pubsub_patterns表,查找匹配的模式,如果有一個或者多個模式與頻道匹配,將消息發送給pattern模式的訂閱者
相關命令:
- 查看所有的頻道:PUBSUB CHANNELS
- 查詢訂閱者的數量:PUBSUB NUMSUB
- 查詢服務器被訂閱者的數量:PUBSUB NUMPAT