## Redis專題四:消息隊列
[TOC]
### list類型實現
使用`lpush`與`brpop`實現,`brpop`是阻塞的,當list隊列中沒有元素時,會一直等待
### Pub/Sub模式實現
- **發布者:** 發布的消息被描述成頻道,而無需知道有什么(如果有的話)訂閱者
- **訂閱者:** 訂閱者表示對一個或多個頻道感興趣,并且只接收感興趣的消息,而無需知道有什么(如果有的話)發布者
| 命令 | 解釋 |
| --- | --- |
| `SUBSCRIBE channel [channel ...]`| 訂閱頻道 ,如`SUBSCRIBE channel:0`|
| `UNSUBSCRIBE [channel [channel ...]]`|取消訂閱指定頻道,如果一個頻道都沒有指定,則取消訂閱所有頻道 ,如`UNSUBSCRIBEchannel:0`|
| `PUBLISH channel message`| 發布者發布消息到指定頻道, 如`PUBLISH channel:0 hello`|
| ` PSUBSCRIBE pattern [pattern ...]`| 訂閱匹配模式pattern的頻道,如`PSUBSCRIBE h?llo`訂閱了頻道`hello`,`hallo`and`hxllo`|
| ` PUNSUBSCRIBE pattern [pattern ...]`| 取消訂閱匹配模式pattern的頻道,如果一個頻道都沒有指定,則取消訂閱所有頻道 ,如`PUNSUBSCRIBE h?llo`訂閱了頻道`hello`,`hallo`and`hxllo`|
- JavaCook
- Java專題零:類的繼承
- Java專題一:數據類型
- Java專題二:相等與比較
- Java專題三:集合
- Java專題四:異常
- Java專題五:遍歷與迭代
- Java專題六:運算符
- Java專題七:正則表達式
- Java專題八:泛型
- Java專題九:反射
- Java專題九(1):反射
- Java專題九(2):動態代理
- Java專題十:日期與時間
- Java專題十一:IO與NIO
- Java專題十一(1):IO
- Java專題十一(2):NIO
- Java專題十二:網絡
- Java專題十三:并發編程
- Java專題十三(1):線程與線程池
- Java專題十三(2):線程安全與同步
- Java專題十三(3):內存模型、volatile、ThreadLocal
- Java專題十四:JDBC
- Java專題十五:日志
- Java專題十六:定時任務
- Java專題十七:JavaMail
- Java專題十八:注解
- Java專題十九:淺拷貝與深拷貝
- Java專題二十:設計模式
- Java專題二十一:序列化與反序列化
- 附加專題一:MySQL
- MySQL專題零:簡介
- MySQL專題一:安裝與連接
- MySQL專題二:DDL與DML語法
- MySQL專題三:工作原理
- MySQL專題四:InnoDB存儲引擎
- MySQL專題五:sql優化
- MySQL專題六:數據類型
- 附加專題二:Mybatis
- Mybatis專題零:簡介
- Mybatis專題一:配置文件
- Mybatis專題二:映射文件
- Mybatis專題三:動態SQL
- Mybatis專題四:源碼解析
- 附加專題三:Web編程
- Web專題零:HTTP協議
- Web專題一:Servlet
- Web專題二:Cookie與Session
- 附加專題四:Redis
- Redis專題一:數據類型
- Redis專題二:事務
- Redis專題三:key的過期
- Redis專題四:消息隊列
- Redis專題五:持久化