基礎(chǔ)命令
基于頻道
- publish channel message:將信號(hào)發(fā)送到指定的頻道
- pubsub subcommand [argument [argyment]]:查看訂閱或發(fā)布系統(tǒng)狀態(tài)
- subscribe channel [channel]:訂閱一個(gè)或多個(gè)頻道的信息
- unsubscribe [channel [channel]]:退訂指定的頻道,若沒有指定頻道,則默認(rèn)退訂所有頻道
基于模式
- psubcribe pattern [pattern]:訂閱一個(gè)或多個(gè)符合給定模式的頻道
- punsubscribe [pattern [pattern]]:退訂所有給定模式的頻道,若pattern未指定,則訂閱的所有模式都會(huì)被退訂,否則只退訂指定的訂閱模式
基于頻道(Channel)的發(fā)布/訂閱
底層原理文章來源:http://www.zghlxwxcb.cn/news/detail-831173.html
- 頻道訂閱:訂閱頻道時(shí)先檢查字段內(nèi)部是否存在,不存在則為當(dāng)前頻道創(chuàng)建一個(gè)字典且創(chuàng)建一個(gè)鏈表存儲(chǔ)客戶端id,否則直接將客戶端id插入到鏈表中
- 取消頻道訂閱:取消時(shí)將客戶端id從對(duì)應(yīng)的鏈表中刪除,如果刪除之后鏈表已經(jīng)是空鏈表了,則將會(huì)把這個(gè)頻道從字段中刪除
- 發(fā)布:首先根據(jù)channel定位到字典的鍵,然后將信息發(fā)送給字典值鏈表中的所有客戶端
基于模式(pattern)的發(fā)布/訂閱
通配符中?表示1個(gè)占位符,_表示任意個(gè)占位符(包括0),?_表示1個(gè)以上占位符
當(dāng)有信息發(fā)送到com.ahead.thread頻道時(shí),信息除了發(fā)送給client4和client5之外,還會(huì)發(fā)送給訂閱com.ahead.*頻道模式的client x和client y
底層原理文章來源地址http://www.zghlxwxcb.cn/news/detail-831173.html
- 模式訂閱:新增一個(gè)pubsub_pattern數(shù)據(jù)結(jié)構(gòu)添加到鏈表的最后尾部,同時(shí)保存客戶端ID
- 取消模式訂閱:從當(dāng)前的鏈表pubsub_pattern結(jié)構(gòu)中刪除需要取消的pubsubPattern結(jié)構(gòu)
到了這里,關(guān)于Redis(03)——發(fā)布訂閱的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!