1. 程式人生 > >Redis的兩種訊息模式

Redis的兩種訊息模式

Redis的兩種訊息模式

  • 佇列模式
  • 釋出訂閱模式

佇列模式

佇列模式下每個消費者可以同時從多個伺服器讀取訊息,但是每個訊息只能被一個消費者讀取。

在佇列模式下其實每次插入的資料都是載入在最前面的,而先插入的資料在後面,列表中始終維持了一個佇列故稱之為佇列模式。

10.220.5.171:6379> lpush list1 q1
(integer) 1
10.220.5.171:6379> lpush list1 q2
(integer) 2
10.220.5.171:6379> lpush list1 q3
(integer) 3
10.220.5.171:6379> lpush list1 q4
(integer) 4
10.220.5.171:6379> lrange list1 0 10
1) "q4"
2) "q3"
3) "q2"
4) "q1"

釋出-訂閱模式

釋出-訂閱模式下每個訊息被廣播到所有消費之中
在這裡插入圖片描述
左邊的圖表示有一個頻道,而一部分客戶端來訂閱這個頻道,然後釋出者來向頻道釋出訊息,那麼此時頻道的訂閱者都可以接受到這個訊息。
訊息訂閱模式演示:

  1. 在多個終端登入redis:
    在這裡插入圖片描述
  2. 在後三個終端訂閱一個頻道
    在這裡插入圖片描述
  3. 在第一個終端在chan1釋出一個訊息
    在這裡插入圖片描述
  4. 此時可以看到後三個終端都收到了這個訊息,
    在這裡插入圖片描述
    其他操作
PUNSUBSCRIBE [pattern [pattern ...]]  退訂多個頻道
SUBSCRIBE channel [channel ...] 訂閱給定的一個或者多個頻道的資訊
UNSUBSCRIBE [channel [channel ...]] 退訂頻道