您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis的發布訂閱功能可以實現實時消息推送嗎(Spring Boot使用Redis進行消息的發布訂閱 原創)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-14 02:42:26【】2人已围观
简介端的pubsub_channels就會存儲一條數據,pubsub_channels其實是一個鏈表,key對應channel,value對應客戶端列表,根據key訂閱的頻道,就可以找到訂閱該頻道的所有客
同時如果客戶端訂閱一個模式 , pubsub_patterns 也會新增一條數據,記錄當前客戶端訂閱的模式, pubsub_patterns 也有自己的數據結構,其中就包含了客戶端以及模式。
當發布者向某個頻道發布消息時,就會遍歷 pubsub_channels 找到訂閱該頻道的客戶端列表,依次向這些客戶端發送消息。
然后遍歷 pubsub_patterns 找到符合當前頻道的模式,同時找到模式對應的客戶端,然后向客戶端發送消息。
雖然Redis提供了發布/訂閱的功能,但是并不完善,導致基本沒有合適的場景能夠使用。
PubSub缺點:
直到Redis5.0出現之后,出現了Stream這種數據結構,才終于完善了Redis的消息機制 。
Stream實際上就是一個消息列表,只是他幾乎實現了消息隊列所需要的所有功能,包括:
同時需要注意的是Stream只是一個數據結構,他不會主動把消息推送給消費者,需要消費者主動來消費數據 。
每個Stream都有唯一的名稱,它就是Redis的key,首次使用 xadd 指令追加消息時自動創建。
常見操作命令如下表:
如果客戶端希望知道自身消費到第幾條數據了,那么就需要記錄一下當前消費的消息ID,下次再次消費的時候就從上次消費的消息ID開始讀取數據即可。
消費組中多了一個游標 last_delivered_id ,表示當前消費到了哪一條數據。同時所有的數據都是待處理消息( PEL ),只有消費者處理完畢之后使用 ack 指令告知redis服務器,數據才會從 PEL 中移除,確認后的消息就無法再次消費。
如果接收到的消息比較多,為了避免Stream過長,可以選擇指定Stream的最大長度,一旦到達了最大長度,就會從最早的消息開始清除,保證Stream中最新的消息。
很赞哦!(8632)
相关文章
- 01 騰訊會員訂閱怎么取消蘋果(蘋果手機怎么取消騰訊會員自動續費)
- 01 臘月賣什么年貨好賣些(過年一般要準備哪些年貨?)
- 01 廣東外語外貿大學自費招生(不高考什么的可以用錢買進廣東外語外貿大學么)
- 01 廣東外語外貿大學英文全稱(廣東外語外貿大學 用英語 怎么說)
- 01 廣東外語外貿大學電子競技學院在哪里(大學學什么專業好?)
- 01 廣東外語外貿大學研究生院官網(廣東外語外貿大學研究生分數線)
- 01 騰訊買粉絲投訴人工24小時電話(騰訊投訴電話是多少?)
- 01 廣東外語外貿大學藝術學院好不好(廣東外語外貿大學藝術類招生分數線。)
- 01 胖東來網紅餅餅熱量(太火!胖東來網紅月餅只線上銷售,“萬物到家”催熱即時零售,真好吃嗎?)
- 01 騰訊公眾電話號碼是多少(請問買粉絲買粉絲人工電話是多少呀?)
热门文章
站长推荐
01 廣東外語外貿大學稅務專碩報考人數(經濟類大學排名2019最新排名)
01 廣東外語外貿大學藝術生招生簡章(廣東外語外貿大學有雙學位嗎)
01 騰訊買粉絲認證費(買粉絲買粉絲認證費用多少?)
01 廣東外語外貿大學稅務專碩招生人數(經濟類考研 ,哪個專業考研比較好?又有哪些大學比較容易考上,但學校不能太差?)
01 能看海外的電視TV軟件(電視盒子直播軟件哪個可以看國外臺)
01 肖戰應不應該為粉絲的行為買單(粉絲行為到底該不該偶像買單)
01 能仕(上海)國際貿易有限公司(做外貿三年了,我想換份工作,上海哪家外貿公司招人呢?)
01 廣東外語外貿大學第二學士學位日語(我在高中學日語,能考什么大學)