使用redis進行訊息推送

2022-07-12 07:12:12 字數 2029 閱讀 4086

redis支援這樣一種特性,你可以將資料推到某個資訊管道中,然後其它客戶端可以通過訂閱這些管道來獲取推送過來的資訊。使用redis的pub/sub,接收方在某個channel註冊為乙個訂閱者,然後監聽這個channel,一旦有訊息發到這個channel上則自動接收訊息, 利用這個特性可以輕易的實現訊息推送功能。

1. 使用rediscli測試

客戶端a訂閱通道:

redis 127.0.0.1:6379> subscribe channeltest

客戶端b往該通道傳送訊息:

redis 127.0.0.1:6379>publish channeltest hello

(integer)

1redis

127.0.0.1:6379>publish channeltest world

(integer)

1

然後客戶端a就能獲取到推送的資訊

redis 127.0.0.1:6379>subscribe channeltest

reading messages... (press ctrl-c to quit)

1) "

subscribe

"2) "

channeltest

"3) (integer) 1

1) "

message

"2) "

channeltest

"3) "

hello

"1) "

message

"2) "

channeltest

"3) "

world

"

2. 批量訂閱測試

客戶端a訂閱通道:

redis 127.0.0.1:6379> subscribe channeltest*

客戶端b往該通道傳送訊息:

redis 127.0.0.1:6379>publish channeltest1 hello

(integer) 1redis 127.0.0.1:6379>publish channeltest2 world

(integer) 1

然後客戶端a就能獲取到推送的資訊:

redis 127.0.0.1:6379> psubscribe channeltest*reading messages... (press ctrl-c to quit)

1) "

psubscribe

"2) "

channeltest*

"3) (integer) 1

1) "

pmessage

"2) "

channeltest*

"3) "

channeltest1

"4) "

hello

"1) "

pmessage

"2) "

channeltest*

"3) "

channeltest2

"4) "

world

"

3. c#客戶端實現

客戶端使用teamdev.redis

class

program

catch

(exception e)

console.readline();

}static

void redisdataaccessprovider_messagereceived(string channelname, string

message)

}static

void redisdataaccessprovider_channelsubscribed(string

channelname)

}

使用redis進行發布訂閱訊息

redis 發布訂閱 pub sub 是一種訊息通訊模式 傳送者 pub 傳送訊息,訂閱者 sub 接收訊息。redis 客戶端可以訂閱任意數量的頻道。redis提供了發布訂閱功能,可以用於訊息的傳輸,redis的發布訂閱機制包括三個部分,發布者,訂閱者和channel。發布者和訂閱者都是redis...

iOS 利用PHP來進行訊息推送

前提 準備好推送證書 aps development.cer及其p12檔案aps development.p12 開始 假設p12檔案 密碼是 123456 終端操作 進入到存放 cer與 p12檔案的資料夾 1.利用 aps development.cer 檔案生成 pem 檔案openssl x...

使用nsqlookupd來推送訊息

其實有點兒文不對題,不是使用nsqlookupd來推送的,最終還是使用nsqd來進行推送。nsq的golang客戶端中,consumer實現了從nsqlookupd中動態拉取服務列表,並進行消費,但是producer中沒有實現這個,假設有n個nsqd節點,某乙個不可用了,那麼不就完蛋了?於是今天自己...