您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
02 redis 訂閱發布 可靠嗎(Redis發布訂閱和Stream)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-06 02:15:27【】8人已围观
简介>當發布者向某個頻道發布消息時,就會遍歷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的緩存數據,建議設置緩存過期時間,以避免緩存數據過期后無法及時更新的情況。
很赞哦!(48)
相关文章
- 01 上海跑外賣單價高嗎(上海跑外賣哪個區單價高)
- 01 上海辰昊貿易有限公司電話(北京朝陽的汽車4S店有哪些?)
- tiktok掛獨立站鏈接條件(tiktok獨立站怎么搭建的) 02
- 01 上海遠翔貿易有限公司怎么樣(上海建平遠翔搖號中簽率)
- tiktok怎么降版本(為什么我的火山號,和抖音號一登錄為什么是一個號怎么找回另外一個號?) 01
- 01 上海跑外賣電子牌照闖紅燈(上海跑外賣上電子牌照后好跑嗎)
- 01 上海達學貿易有限公司(做外貿三年了,我想換份工作,上海哪家外貿公司招人呢?)
- 01 上海車牌限號嗎外地車(上海限外地車牌嗎)
- tiktok怎么破0播放(tiktok破播要多久) 03
- 01 上海貿易大廈多少層(上海國貿大廈多少層)
热门文章
站长推荐
01 上海貿易學校貿易英語包分配嗎(三加二學校有什么專業)
01 上海貝德瑪化妝品貿易有限公司地址(上海貝德瑪化妝品貿易有限公司電話是多少?)
01 上海貫仟貿易有限公司(AIRTAC詳細資料大全)
01 上海諾昌貿易有限公司(山東昌諾新材料科技是國家級專精特新“小巨人”嗎?)
tiktok怎么降版本(為什么我的火山號,和抖音號一登錄為什么是一個號怎么找回另外一個號?) 01
01 上海躍茂貿易有限公司(非常好聽的貿易公司名稱大全)
01 上海譽日貿易有限公司招聘(2023年上海煙草集團北京卷煙廠有限公司招聘公告?)
01 上海進出口貿易公司信用證答案(2012年單證員考試單選題及答案解析精選)