NoSQL之Redis高級應用--發佈及訂閱消息

一.簡介

發佈訂閱(pub/sub)是一種消息通信模式,主要的目的是解除消息發佈者和消息訂閱者之間的耦合,Redis作爲一個pub/sub的server,在訂閱者和發佈者之間祈禱了消息路由的功能。訂閱者可以通過subscribe和psubscribe命令向redis server訂閱自己感興趣的消息類型,redis將消息類型稱爲通道(channel)。當發佈者通過publish命令向redis server發送特定類型的消息時,訂閱該消息類型的全部client都會收到此消息。

二.pub/sub命令

pub即publish命令:是redis server向監聽它的client發佈特定消息的命令

sub即subscribe命令:是client用這個命令訂閱響應的頻道。

我們打開3個session來做一下實驗

session1:訂閱了tv1這個頻道

127.0.0.1:6379> subscribe tv1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv1"
3) (integer) 1

session2:訂閱tv1 和 tv2兩個頻道

127.0.0.1:6379> subscribe tv1 tv2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "tv1"
3) (integer) 1
1) "subscribe"
2) "tv2"
3) (integer) 2
1) "message"
2) "tv1"

session3作爲redis的服務端用publish命令來廣播自己的消息

127.0.0.1:6379> publish tv1 'hello world'
(integer) 2

首先在tv1的頻道廣播了一條'hello world'消息,返回2說明有2個client在訂閱這個頻道,這個時候session1和session2中分別會收到消息。

session1

1) "message"
2) "tv1"
3) "hello world"

session2

1) "message"
2) "tv1"
3) "hello world"

如果在session3中再廣播一條消息,只在tv2的頻道廣播,那麼session1不會收到這條消息,而session2會收到,大家可以自己測試



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章