您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis 訂閱發布 可靠嗎(Redis發布訂閱和Stream)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-12 06: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的緩存數據,建議設置緩存過期時間,以避免緩存數據過期后無法及時更新的情況。
很赞哦!(857)
相关文章
- 03 建材貿易公司簡介范文大全(商貿公司簡介范文_商貿公司簡介怎么寫)
- 10 廣州福笙貿易有限公司(福笙記移動硬盤怎么樣)
- 03 建立貿易關系的英語函電格式(建立貿易關系的英語函電)
- 03 建材海外經濟合作有限公司怎么樣(中國十大裝飾公司有哪些?)
- 10 小學書法比賽買粉絲文稿(競選主持人演講稿)
- 10 廣西梧州市高得貿易有限公司(廣西梧州商貿學校校風如何)
- 03 廣西港希貿易有限公司(探訪海南自貿港“樣板間”,這里的情況如何?)
- 10 杭州樸江貿易有限公司(杭州市上城區風景旅游局杭州市上城區風景旅游局局長)
- 10 外貿綜合平臺實訓報告(國際貿易實訓報告總結800字7篇)
- 10 廣州明匯潤貿易有限公司(廣州老字號廣州老字號品牌)