Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例
場景
什么是發(fā)布與訂閱
發(fā)布訂閱是一種應(yīng)用程序(系統(tǒng))之間通訊,傳遞數(shù)據(jù)的技術(shù)手段,特別是在異構(gòu)(不同語言)系統(tǒng)之間的作用非常明顯。
發(fā)布訂閱:
類似于微信中關(guān)注公眾號/訂閱號,公眾號/訂閱號發(fā)布的文章,訂閱者能及時獲取到最新的內(nèi)容。
發(fā)布訂閱是一對多的關(guān)系。
訂閱:
對某個內(nèi)容感興趣,需要實(shí)時獲取新的內(nèi)容。只要關(guān)注的內(nèi)容有變化就能立即得到通知。
發(fā)布:
提供某個內(nèi)容,把內(nèi)容信息發(fā)送給多個對此內(nèi)容感興趣的訂閱者。是有主動權(quán)的一方。
發(fā)布訂閱應(yīng)用在即時通信中較多,比如網(wǎng)絡(luò)聊天室、外賣搶單、搶紅包等。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
Centos中Redis的下載編譯與安裝(超詳細(xì)):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334
Redis的啟動和關(guān)閉(前臺啟動和后臺啟動):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348
RedisDesktopManager客戶端可視化工具下載安裝與使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103983147
通過上面幾篇博客將Redis的環(huán)境搭建起來。
這里使用XShell進(jìn)行連接后,復(fù)制三個會話
?
這里一共四個會話,其中一個作為發(fā)布者,三個作為訂閱者
?
然后在第一個作為發(fā)布者的會話中以后臺模式啟動Redis服務(wù)端,并啟動客戶端,具體參照上面博客。
然后在另外三個作為訂閱者的會話中分別啟動客戶端。
?
要實(shí)現(xiàn)發(fā)布訂閱要遵循先訂閱再發(fā)布。
所以在作為訂閱者的三個會話中依次執(zhí)行訂閱頻道的操作
SUBSCRIBE badaodechengxvyuan前面是訂閱命令后面跟的是頻道號,類似于公眾號。
?
然后在作為發(fā)布者的會話中進(jìn)行發(fā)布。
publish badaodechengxvyuan "hello"可以看到在發(fā)布后三個訂閱者分別能收到消息
?
除此之外,Redis常用發(fā)布訂閱命令如下
?
| 1 | PSUBSCRIBE pattern [pattern ...]? 訂閱一個或多個符合給定模式的頻道。 |
| 2 | PUBSUB subcommand [argument [argument ...]]? 查看訂閱與發(fā)布系統(tǒng)狀態(tài)。 |
| 3 | PUBLISH channel message? 將信息發(fā)送到指定的頻道。 |
| 4 | PUNSUBSCRIBE [pattern [pattern ...]]? 退訂所有給定模式的頻道。 |
| 5 | SUBSCRIBE channel [channel ...]? 訂閱給定的一個或多個頻道的信息。 |
| 6 | UNSUBSCRIBE [channel [channel ...]]? 指退訂給定的頻道。 |
總結(jié)
以上是生活随笔為你收集整理的Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringDataRedis对Redi
- 下一篇: Redis中事务的实现流程