搶購、秒殺
阿新 • • 發佈:2019-01-02
搶購、秒殺是平常很常見的場景,面試的時候面試官也經常會問到,比如問你淘寶中的搶購秒殺是怎麼實現的等等。
搶購、秒殺實現很簡單,但是有些問題需要解決,主要針對兩個問題:
一、高併發對資料庫產生的壓力
二、競爭狀態下如何解決庫存的正確減少("超賣"問題)
第一個問題,對於PHP來說很簡單,用快取技術就可以緩解資料庫壓力,比如memcache,redis等快取技術。
第二個問題就比較複雜點:
常規寫法:
查詢出對應商品的庫存,看是否大於0,然後執行生成訂單等操作,但是在判斷庫存是否大於0處,如果在高併發下就會有問題,導致庫存量出現負數。