您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis 訂閱發布 可靠嗎(Redis發布訂閱和Stream)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-06 15:00:27【】0人已围观
简介>當發布者向某個頻道發布消息時,就會遍歷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的緩存數據,建議設置緩存過期時間,以避免緩存數據過期后無法及時更新的情況。
很赞哦!(17526)
相关文章
- 01 上海美團外賣客服電話有幾個號碼(美團外賣電話人工服務24小時)
- 01 四川海外留學生選調生(留學生可以報考選調生嗎)
- 01 四川省第一人民醫院買粉絲(在溫州第一人民醫院在買粉絲上點開在線支付怎么會沒有信息)
- 01 上海第五人民醫院神經外科排名第幾(西部貧困地區臨床醫學就業前景)
- 01 四川省外貿機械進出口有限責任公司是國企嗎(陜西美輪機械設備進出口有限責任公司怎么樣?)
- 01 上海繁杰貿易有限公司(金橋焊絲的廠家推薦)
- 01 四川百瑞祥國際貿易有限公司(成都吉泰一號有哪些公司)
- 01 四川省經濟貿易學校畢業證(成都市有哪些公辦的中專學校)
- 01 四川省選調生海外院校(四川省選調生學校名單)
- 01 上海網紅書店圖片(重慶網紅書店鐘書閣在哪里?)