010_Redis的发布和订阅
1. subscribe命令
1.1. 語法: subscribe channel [channel ...]。
1.2. subscribe命令用于訂閱給定的一個或多個頻道的信息。
1.3. 在Redis客戶端, 運行該命令會阻塞, 用于接收信息。
1.4. 實例
2. publish命令
2.1. 語法: publish channel message。
2.2. publish命令用于將信息發送到指定的頻道。
2.3. 返回接收到信息的訂閱者數量。
2.4. 實例
2.4.1. 在客戶端二發布消息
2.4.2. 客戶端一接收到了頻道發生的消息
3. unsubscribe命令
3.1. 語法: unsubscribe [channel [channel ...]]。
3.2. unsubscribe命令用于退訂給定的一個或多個頻道的信息。
3.3. unsubscribe命令如果沒有頻道被指定, 也即是一個無參數的unsubscribe命令被執行, 那么客戶端subscribe命令訂閱的所有頻道都會被退訂。在這種情況下, 命令會返回一個信息, 告知客戶端所有被退訂的頻道。
4. psubscribe命令
4.1. 語法: psubscribe pattern [pattern ...]。
4.2. psubscribe命令訂閱一個或多個符合給定模式的頻道。
4.3. 每個模式以 * 作為匹配符, 比如 it* 匹配所有以 it 開頭的頻道(it.news 、 it.blog 、 it.tweets 等等), news.* 匹配所有以 news. 開頭的頻道(news.it 、 news.global.today 等等), 諸如此類。
5. punsubscribe命令
5.1. 語法: punsubscribe [pattern [pattern ...]]。
5.2. punsubscribe命令用于退訂所有給定模式的頻道。
5.3. 如果沒有模式被指定, 也即是一個無參數的punsubscribe調用被執行, 那么客戶端使用psubscribe命令訂閱的所有模式都會被退訂。在這種情況下, 命令會返回一個信息, 告知客戶端所有被退訂的模式。
6. pubsub命令
6.1. 語法: pubsub subcommand [argument [argument ...]]。
6.2. pubsub命令用于查看訂閱與發布系統狀態, 它由數個不同格式的子命令組成。
6.3. 返回由活躍頻道組成的列表。
6.4. 列出當前的活躍頻道
6.4.1. 語法: pubsub channels [pattern]。
6.4.2. 列出當前的活躍頻道。活躍頻道指的是那些至少有一個訂閱者的頻道, 訂閱模式的客戶端不計算在內。
6.4.3. pattern參數是可選的:
- 如果不給出pattern參數, 那么列出訂閱與發布系統中的所有活躍頻道。
- 如果給出pattern參數, 那么只列出和給定模式pattern相匹配的那些活躍頻道。
6.5. 返回給定頻道的訂閱者數量
6.5.1. 語法: pubsub numsub [channel-1 ... channel-n]。
6.5.2. 返回給定頻道的訂閱者數量, 訂閱模式的客戶端不計算在內。
6.5.3. 返回值: 一個多條批量回復(Multi-bulk reply), 回復中包含給定的頻道, 以及頻道的訂閱者數量。格式為: 頻道channel-1, channel-1的訂閱者數量; 頻道channel-2, channel-2的訂閱者數量, 諸如此類。回復中頻道的排列順序和執行命令時給定頻道的排列順序一致。不給定任何頻道而直接調用這個命令也是可以的, 在這種情況下, 命令只返回一個空列表。
6.6. 返回訂閱模式的數量
6.6.1. 語法: pubsub numpat。
6.6.2. 注意, 這個命令返回的不是訂閱模式的客戶端的數量, 而是客戶端訂閱的所有模式的數量總和。相同的訂閱也被計算在pubsub numpat之內。
6.6.3. 返回一個整數回復。
6.6.4. 實例
總結
以上是生活随笔為你收集整理的010_Redis的发布和订阅的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 023_Jedis的发布和订阅
- 下一篇: 011_Redis的快照持久化