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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有大佬遇到過這個問題嗎:Redis原子性問題

有大佬遇到過這個問題嗎:Redis原子性問題

慕勒3428872 2019-09-19 11:59:51
在高并發(fā)時候Llen多人會獲取到相同的值比如秒殺時候庫存10個通過llen
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經(jīng)驗 獲得超7個贊

你是通過lpush添加數(shù)據(jù),然后llen<10來判斷是否超賣?原子性是對redis命令來說的,并沒有說redis多個命令還是原子性啊,redis原子性這個話術(shù)本來就有問題。lpop沒問題是lpop是獲取加移出,你事先把固定數(shù)量的貨品lpush入隊列,根據(jù)redis命令串行執(zhí)行這個特點,lpop當然不會超賣,因為可以pop的數(shù)據(jù)項是一定的。但是如果你用llen來判斷,命令之間是串行執(zhí)行但不是原子的,例如,llen和lpop由兩個實例同時發(fā)出,server端先執(zhí)行l(wèi)len再執(zhí)行l(wèi)pop,那么根據(jù)llen的返回做出的決策是有問題的,會導致超賣所以你沒有理解一個本質(zhì):命令原子性、redisserver執(zhí)行串行化、多實例client可以并發(fā)請求redis
                            
查看完整回答
反對 回復 2019-09-19
?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

列一個場景:A調(diào)用Llen返回1B調(diào)用Llen返回1
B先扣除并提交A也扣除并提交
這種場景就不能避免超賣,因為在取出長度的時候是原子,但是取出后的操作會繼續(xù)扣除的。
                            
查看完整回答
反對 回復 2019-09-19
  • 2 回答
  • 0 關(guān)注
  • 399 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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