我知道redis的單個(gè)操作是原子性的,如果在代碼中對(duì)redis進(jìn)行多次操作將無法保證整個(gè)操作流程的原子性。比如下面的這段代碼中,假設(shè)nums這個(gè)key的值是50,使用ab.exe工具對(duì)其1000次訪問,并發(fā)數(shù)是100,理論上結(jié)果應(yīng)該會(huì)出現(xiàn)負(fù)數(shù)的.可是我多次測(cè)試下nums的值都是1,請(qǐng)問是我測(cè)試的方式不對(duì)還是其他哪里有問題呢?$nums = $redis->get('nums');if($nums > 1)
$redis->decr('nums');
2 回答

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
你寫了判斷呀,大于1的時(shí)候才遞減1
你減到1的時(shí)候都不執(zhí)行了,他怎么能作為測(cè)試原子性的依據(jù)呢?
添加回答
舉報(bào)
0/150
提交
取消