您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis 訂閱發布 可靠嗎(Redis發布訂閱和Stream)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-10 10:22:07【】5人已围观
简介>當發布者向某個頻道發布消息時,就會遍歷pubsub_channels找到訂閱該頻道的客戶端列表,依次向這些客戶端發送消息。然后遍歷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中最新的消息。
java服務redis重啟后需要重啟嗎
Java服務不需要重啟,當Redis重啟后,Java應用程序會自動重新連接到Redis。這是因為Java應用程序中的Redis客戶端會自動嘗試重新建立連接。在Redis重啟后,客戶端會向Redis發送PING命令,如果連接成功,則Redis會返回PONG響應,Java應用程序會收到這個響應并繼續執行。如果連接失敗,則客戶端會嘗試重新連接,直到連接成功或達到最大連接嘗試次數。
需要注意的是,在Redis重啟后,可能會出現一段時間無法訪問Redis的情況,因為Redis需要重新加載數據到內存中。如果Java應用程序需要立即訪問Redis,可以通過設置Redis的持久化配置參數來避免這種情況。另外,如果Java應用程序中有使用Redis的緩存數據,建議設置緩存過期時間,以避免緩存數據過期后無法及時更新的情況。
很赞哦!(94)
相关文章
- 02 嵐鉆國際貿易成都有限公司(校斗群職位表?(比如:宿舍,跑車,公司,幫派……))
- 02 山西鵬原浩貿易有限公司(征求企業之歌 (追加500分))
- 04 邊境小額貿易進口 免征增值稅嗎(國家對廣西對北部灣有什么優惠政策)
- 04 近年來美國服務貿易呈現出哪些特點(美國促進服務貿易發展的政策措施有哪些)
- 02 工商銀行海外分行招聘(2021年工商銀行招聘的崗位有哪些?)
- 04 進出口家具貿易公司的簡介(商貿公司簡介范文大全)
- 02 市設立海外經貿辦事處(國家商務部是什么性質的國家機構?)
- 04 運城年貨一條街在哪里(3年了,我終于回家過了年)
- 02 山西山發實業集團進出口貿易有限公司(中國鋁業子公司有哪些)
- 04 遼寧對外經貿學院校友名單(遼寧省內本科院校排名)