亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

關于redis原子性測試的疑問?

關于redis原子性測試的疑問?

紅顏莎娜 2018-07-05 07:11:42
我知道redis的單個操作是原子性的,如果在代碼中對redis進行多次操作將無法保證整個操作流程的原子性。比如下面的這段代碼中,假設nums這個key的值是50,使用ab.exe工具對其1000次訪問,并發數是100,理論上結果應該會出現負數的.可是我多次測試下nums的值都是1,請問是我測試的方式不對還是其他哪里有問題呢?$nums = $redis->get('nums');if($nums > 1)     $redis->decr('nums');
查看完整描述

2 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

你寫了判斷呀,大于1的時候才遞減1
你減到1的時候都不執行了,他怎么能作為測試原子性的依據呢?

查看完整回答
反對 回復 2018-07-20
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

你這樣的并發很難測試出來的,的確這樣操作存在負數的可能。但是想想你的電腦是 4核8線程,最多同時執行8個請求而已,這對redis來說是非常小的并發量了。所以我認為不出現問題是因為并發量小了,實際上是會存在問題的。

查看完整回答
反對 回復 2018-07-20
  • 2 回答
  • 0 關注
  • 1557 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號