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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

redis原子性控制超賣(mài)問(wèn)題

老師,既然redis是單線程,那為什么非要配合lua呢,直接在代碼里執(zhí)行redis->eval或者redis->incrby不就能控制超賣(mài)么,

正在回答

1 回答

同學(xué)你好,你的思路不錯(cuò),可以繼續(xù)去想下直接incrby改會(huì)有什么問(wèn)題,老師提供的思路只是其中一個(gè)方案,真正場(chǎng)景實(shí)現(xiàn)肯定會(huì)有非常多的方案,需要大家自己思考。
redis->eval本身就是執(zhí)行l(wèi)ua腳本,redis->incrby理論上也可以防止邊界條件的發(fā)生,不會(huì)造成超賣(mài),因?yàn)閕ncrby就實(shí)現(xiàn)了查詢+修改的原子操作,但是有一點(diǎn)點(diǎn)小缺點(diǎn)就是,不能做到只要一超賣(mài)了就直接終止+1。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

MKfans菜鳥(niǎo)

老師我也有個(gè)問(wèn)題不明白,有一點(diǎn)點(diǎn)小缺點(diǎn)就是,不能做到只要一超賣(mài)了就直接終止+1,這句話是因?yàn)檫@個(gè)redis->eval這個(gè)東西在redis里面執(zhí)行的,所以不存在這個(gè)情況,如果放到php中去執(zhí)行,因?yàn)閞edis線程競(jìng)爭(zhēng),有可能在最后一件的時(shí)候出現(xiàn),2個(gè)前后查完,第一個(gè)正在寫(xiě)的,第二個(gè)也準(zhǔn)備寫(xiě)緣故嗎?
2019-10-06 回復(fù) 有任何疑惑可以回復(fù)我~
#2

皮奇 回復(fù) MKfans菜鳥(niǎo)

后半部分?jǐn)?shù)對(duì)的,但是前半部分你說(shuō)的錯(cuò)了,不是redis線程競(jìng)爭(zhēng)的問(wèn)題,因?yàn)镽edis的命令執(zhí)行時(shí)單進(jìn)程單線程模型。你可以思考下,incrby做計(jì)數(shù),你想做到超賣(mài)了就直接終止+1,是不是每次之前都得先讀一次計(jì)數(shù),然后決定是否有調(diào)用incrby,此時(shí)就是 get + incrby 兩次操作,也就是會(huì)分成了兩次網(wǎng)絡(luò)調(diào)用操作,此時(shí)這兩個(gè)操作在(php)多進(jìn)程模型下是無(wú)法保證原子性操作的。
2019-10-15 回復(fù) 有任何疑惑可以回復(fù)我~
#3

慕勒4092611 回復(fù) 皮奇

老師,你的意思是 我直接用if ($redis->incrby($key, 1) > 1000)判斷 是可以做到防超賣(mài),但是這個(gè)$key會(huì)一直incrby到很大?
2020-05-19 回復(fù) 有任何疑惑可以回復(fù)我~
#4

慕粉3988021 回復(fù) 慕勒4092611

我也想知道,請(qǐng)老師回答
2020-09-17 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報(bào)

0/150
提交
取消

redis原子性控制超賣(mài)問(wèn)題

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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