第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

對(duì)于redis 命令 rpoplpush的疑問

對(duì)于redis 命令 rpoplpush的疑問

jeck貓 2018-10-24 12:50:52
相比lpop,這個(gè)命令主要防止消息丟失的。如果lpop一個(gè)隊(duì)列,然后客戶端崩潰了,這時(shí)候這個(gè)消息就丟失了。官方的描述:可以添加一個(gè)客戶端專門用于監(jiān)視備份表,它自動(dòng)地將超過一定處理時(shí)限的消息重新放入隊(duì)列中去(負(fù)責(zé)處理該消息的客戶端可能已經(jīng)崩潰),這樣就不會(huì)丟失任何消息了。那么,怎樣判斷超過一定時(shí)限的消息?我目前是這樣做的。1、rpoplpush 隊(duì)列,比如從A導(dǎo)出,備份到B。2、將得到的隊(duì)列zadd到一個(gè)有序集合zset里面。3、隊(duì)列完成,使用命令lrem將隊(duì)列移除出備份隊(duì)列B。如果進(jìn)行到1步驟,沒有進(jìn)行到2步驟,那就說明這個(gè)隊(duì)列丟失了。所以我只需要定期查詢B里面的隊(duì)列,是否存在zset里面就行了。貌似沒問題。但假如我的檢測(cè)程序運(yùn)行在1和2步驟之間,那么就存在誤判了。避免這種情況,最好就是官方的描述:“超過一定處理時(shí)限的消息重新放入隊(duì)列中”,比如一個(gè)隊(duì)列,彈出來10秒之后再檢測(cè)就不會(huì)出現(xiàn)這種情況,那么如何判斷時(shí)間呢?
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

自己找到答案了。另外維護(hù)一個(gè)zset。把備份隊(duì)列B的隊(duì)列先放入另外一個(gè)zset,隔15秒檢查一次。

查看完整回答
反對(duì) 回復(fù) 2018-10-24
  • 1 回答
  • 0 關(guān)注
  • 842 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)