欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

redis的消息隊列防止數(shù)據(jù)丟失的方法

序言:

成都創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、微信小程序定制開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立10多年以來,已經為成百上千家PE包裝袋各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務。現(xiàn)在,服務的成百上千家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。

“消息隊列”是 Microsoft 的消息處理技術,它在任何安裝 Microsoft Windows 的計算機組合中,為任何應用程序提供消息處理和消息隊列功能,無論這些計算機是否在同一個網(wǎng)絡上或者是否同時聯(lián)機。

“消息隊列網(wǎng)絡”是能夠相互間來回發(fā)送消息的任何一組計算機。網(wǎng)絡中的不同計算機在確保消息順利處理的過程中扮演不同的角色。它們中有些提供路由信息以確定如何發(fā)送消息,有些保存整個網(wǎng)絡的重要信息,而有些只是發(fā)送和接收消息。

Redis實現(xiàn)消息隊列有兩種形式:

廣播訂閱模式:基于Redis的 Pub/Sub 機制,一旦有客戶端往某個key里面 publish一個消息,所有subscribe的客戶端都會觸發(fā)事件集群訂閱模式:基于Redis List雙向+ 原子性 + BRPOP

Redis消息隊列時,當Redis宕機后,消息可能會丟失(也要看持久化的策略)。如果收消息方未有重發(fā)和驗證機制,Redis內的數(shù)據(jù)會出現(xiàn)丟失。所以,使用Redis的作為消息隊列,通常是對于消息的準確性并非特別高的場景。

如果絕對的保證數(shù)據(jù)最終一致性,保證消息百分百不丟,那么需要:

1.寫入時候要求啟用事務處理,保證寫一定成功。

2. redis配置成任何變更一定實時持久化,比如存儲端是磁盤的話,每次變更馬上同步寫入磁盤,才算完成。redis是支持這種方式配置的,但是這么做會使它的內存數(shù)據(jù)庫特性完全消失,性能變得十分低下。

3. 消費端也要實現(xiàn)事務方式,處理完成后,再回來真實刪除消息。

4. 多線程或者多端同時并發(fā)處理,可以通過鎖的方式來規(guī)避。

3 4的需求需要自己實現(xiàn),可以一起考慮,用另外一個隊列實現(xiàn)的方式也可以,但是更好的方式是在隊列內部實現(xiàn)個計數(shù)器。hash格式的加個字段加數(shù)值,list的先推一個數(shù)值打底,string的頭上加個數(shù)值再加個分隔符,就可以做個簡單計數(shù)器了,雖然土,勝在夠實用。

除了特定的系統(tǒng)之外,一般不會要求這么強的一致性,實現(xiàn)倒不難,但是性能會很差很差。

銀行類支付類業(yè)務會要求嚴格的事務一致性,而互聯(lián)網(wǎng)類業(yè)務一般會用點取巧的方式,就是可以容忍極短時間內少量數(shù)據(jù)丟失的方式,換取更高性能。

比如上面的redis處理,可以改為1000條數(shù)據(jù)變更的時候再真實落盤,即寫入磁盤。那么極限情況下,如突然斷電,存在可能丟失這1000條數(shù)據(jù)的風險。當然這種情況出現(xiàn)的概率也是很低的(遠離藍翔挖掘機?),所以大部分場景下可以接受。

以上就是redis消息隊列如何防止數(shù)據(jù)丟失的詳細內容,更多請關注創(chuàng)新互聯(lián)其它相關文章!

分享標題:redis的消息隊列防止數(shù)據(jù)丟失的方法
鏈接URL:http://www.chinadenli.net/article0/jiipoo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化搜索引擎優(yōu)化網(wǎng)頁設計公司用戶體驗電子商務網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司