序言
發(fā)布訂閱在設(shè)計(jì)模式中也可以說是觀察者模式,針對(duì)這個(gè)模式是處理對(duì)象間一對(duì)多的依賴關(guān)系的,當(dāng)一個(gè)對(duì)象發(fā)生變化,其它依賴他的對(duì)象都要得到通知并更新。
然而它也有自己的缺點(diǎn),就是當(dāng)主題發(fā)生一系列的變化時(shí),觀察者都要做批量的更新,如果這樣的更新成本很高,那么解決方法就是根據(jù)種類需求通知,而不能盲目的通知所有的觀察者。
那針對(duì)這個(gè)缺點(diǎn),一般的情況下,你沒有需求誰訂閱一個(gè)跟自己無關(guān)的消息推送呢?這也正好說明推送的消息需要整理而不能一窩蜂的什么消息都往一個(gè)通道里面拋,要分而治之,合理的設(shè)計(jì)發(fā)布通道的用途,也合理的訂閱通道。
那么如此一來,升級(jí)到系統(tǒng)項(xiàng)目級(jí)別,他別給我們又帶來啦,莫大的好處,便是:剝離系統(tǒng)耦合,減少單線功能的依賴關(guān)系,又正迎合啦高內(nèi)聚,松耦合的系統(tǒng)架構(gòu)設(shè)計(jì)。
扯拉這么多,只當(dāng)廢話啦,因?yàn)槲疫@一篇的序言里面也不知道寫什么段子啦,就這樣吧。
Redis中的發(fā)布/訂閱功能
這一節(jié)參考官方文檔:https://redis.io/topics/pubsub
首先我準(zhǔn)備啦1個(gè)redis服務(wù),3個(gè)客戶端,如下圖所示:
然后打開官方文檔,首先可以看到以下6個(gè)命令,對(duì),就只有這6個(gè)命令,只要你能掌握理解,發(fā)散思維靈活運(yùn)用。吐納,吐納,那么道于此,生一,生二、生三,生萬物,根本不在話下??!C,C,C,WC, 小伙,以后拯救世界就看你啦。