本篇文章給大家?guī)砹岁P(guān)于Redis的相關(guān)知識,其中主要介紹了關(guān)于實現(xiàn)秒殺的相關(guān)內(nèi)容,包括了秒殺邏輯、存在的鏈接超時、超賣和庫存遺留的問題,下面一起來看一下,希望對大家有幫助。
推薦學(xué)習(xí):Redis視頻教程
1、秒殺邏輯
秒殺:解決計數(shù)器和人員記錄的事務(wù)操作
- 1.uid和proid非空判斷
- 2.連接redis
- 3.拼接key
- 庫存key
- 秒殺成功用戶key
- 4.獲取庫存,如果庫存為null,秒殺還沒開始
- 5.判斷用戶是否重復(fù)秒殺操作
- 6.判斷商品數(shù)量,庫存數(shù)量小于1,秒殺結(jié)束
- 7.秒殺過程
- 庫存-1
- 把秒殺成功用戶添加清單里面
2、存在問題
2.1、連接超時
原因:由于大量創(chuàng)建連接,十分消耗性能,并且有時獲取連接不及時,出現(xiàn)連接超時的情況
2.2、超賣
在并發(fā)的情況下發(fā)生的,就是在輸出沒有庫存(秒殺結(jié)束)后還有商品售出導(dǎo)致庫存數(shù)量為負數(shù)。
2.3、庫存遺留
使用樂觀鎖解決問題2之后,出現(xiàn)問題3
如果庫存數(shù)量相對并發(fā)