2021-12-29 14:54:00retetgrestgresrfg
SpringBoot + Redis:類比 10w 人的秒殺搶單2
注意的是delnx時,需要傳遞創建鎖時的value,因為通過et的value與delnx的value來判斷是否是持有鎖的操作請求,只有value一樣才允許del;
類比搶單動作(10w個人開搶)
美國GOOGMAN GOOGMAN增大丸官網 goodman增大丸評價 增大丸 增長增粗
有了上面對分散式鎖的粗略基礎,我們類比下10w人搶單的場景,其實就是一個併發操作請求而已,由於環境有限,只能如此測試;如下初始化10w個使用者,並初始化庫存,商品等資訊,如下
有了上面10w個不同用戶,我們設定商品只有10個庫存,然後通過並行流的方式來類比搶購,如
:並行流類比多使用者搶購
2、(startTime + timeout) >= System.currentTimeMillis():判斷未搶成功的使用者,timeout秒內繼續獲取鎖
3、獲取鎖前和后都判斷庫存是否還足夠
增大丸推薦 增大丸效果 增大丸ptt goodman增大丸怎麼吃
4、jedisCom.setnx(shangpingKey, b):用戶獲取搶購鎖
5、獲取鎖后並下單成功,最後釋放鎖:jedisCom.delnx(shangpingKey, b)
再來看下記錄的日誌結果: