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)

再來看下記錄的日誌結果: