Redis實(shí)現(xiàn)消息隊(duì)列

原文作者: xingguang
原文鏈接:https://www.tiance.club/post/4033908611.html

隊(duì)列本身其實(shí)是個(gè)有序的列表苹祟,而Redis是支持list的予跌,可以利用redis的列表(List)來(lái)實(shí)現(xiàn)簡(jiǎn)單隊(duì)列螟深。

一般有兩種方式:
1变屁、LPUSH(頭部插入)和RPOP(尾部彈出)
2谊迄、RPUSH(尾部插入)和LPOP(頭部彈出)
兩種均可令宿,下面示例使用的是:第一種:LPUSH和RPOP寇荧。

一般開(kāi)發(fā)的時(shí)候我們會(huì)分為生產(chǎn)者和消費(fèi)者刽脖,生產(chǎn)者生產(chǎn)消息羞海,消費(fèi)者獲取消息進(jìn)行處理。

原文作者: xingguang
原文鏈接:https://www.tiance.club/post/4033908611.html

Producer: 
redis->lpush(‘joblist’, ‘this is Job-1’); 
redis->lpush(‘joblist’, ‘this is Job-2’); 
…. 
Cosumer: 
job = redis->rpop(‘joblist’);// return Job-1 
done the job…. 
job = redis->rpop(‘joblist’);// return Job-2 
done the job… 

需要注意的是redis實(shí)現(xiàn)的消息隊(duì)列功能本身存在一些缺陷曲管,這也是redis本身的限制却邓,一個(gè)重要的缺陷在于沒(méi)有類似RabbitMQ那樣成熟的ACK消息確認(rèn)機(jī)制(雖然redis也可以通過(guò)代碼層自己封裝寫(xiě)個(gè)ack消息確認(rèn)機(jī)制,但相對(duì)比較繁雜院水。一般常見(jiàn)的思路是POP時(shí)將pop出的數(shù)據(jù)放到備份的地方腊徙,當(dāng)有ACK請(qǐng)求(確認(rèn)消息被消耗)后將備份的信息刪除掉;每次在pop前需要檢查備份隊(duì)列中有沒(méi)有過(guò)期的數(shù)據(jù)沒(méi)有ack的檬某,如果有則PUSH到list中后再?gòu)膌ist中POP出來(lái)撬腾。
一般來(lái)說(shuō)如果對(duì)數(shù)據(jù)沒(méi)有極高要求的又不想搭建其他QM組件的話可以直接用redis的list功能實(shí)現(xiàn),如果對(duì)數(shù)據(jù)冪等性恢恼、一致性有要求的話建議使用RabbitMQ(目前功能最完善的企業(yè)級(jí)MQ產(chǎn)品民傻,雖然吞吐量不是最強(qiáng)的,但足以應(yīng)付絕大多數(shù)公司的流量)或者不想自己搭建的話也可以直接使用第三方的消息隊(duì)列產(chǎn)品场斑,比如阿里云的消息隊(duì)列漓踢,安全性能均有保障。

原文作者: xingguang
原文鏈接:https://www.tiance.club/post/4033908611.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漏隐,一起剝皮案震驚了整個(gè)濱河市喧半,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌青责,老刑警劉巖挺据,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脖隶,居然都是意外死亡扁耐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)浩村,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)做葵,“玉大人,你說(shuō)我怎么就攤上這事心墅∧鹗福” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵怎燥,是天一觀的道長(zhǎng)瘫筐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)铐姚,這世上最難降的妖魔是什么策肝? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮隐绵,結(jié)果婚禮上之众,老公的妹妹穿的比我還像新娘。我一直安慰自己依许,他們只是感情好棺禾,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著峭跳,像睡著了一般膘婶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛀醉,一...
    開(kāi)封第一講書(shū)人閱讀 52,184評(píng)論 1 308
  • 那天悬襟,我揣著相機(jī)與錄音,去河邊找鬼拯刁。 笑死脊岳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的垛玻。 我是一名探鬼主播逸绎,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夭谤!你這毒婦竟也來(lái)了棺牧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤朗儒,失蹤者是張志新(化名)和其女友劉穎颊乘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體醉锄,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乏悄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恳不。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檩小。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖烟勋,靈堂內(nèi)的尸體忽然破棺而出规求,到底是詐尸還是另有隱情筐付,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布阻肿,位于F島的核電站瓦戚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丛塌。R本人自食惡果不足惜较解,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赴邻。 院中可真熱鬧印衔,春花似錦、人聲如沸姥敛。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)徒溪。三九已至忿偷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間臊泌,已是汗流浹背鲤桥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渠概,地道東北人茶凳。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像播揪,于是被迫代替她去往敵國(guó)和親贮喧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359