常見流程是先減去庫存,然后到MQ,然后判斷是否超賣,然后寫入資料庫(唯一索引防止重復)。
redis庫存10,mysql庫存10,但是現在一個人發了10條秒殺,redis = 0 mysql = 10,成功一條redis = 0,mysql = 9.
那么其他人沒法秒殺了,并且只賣出去一件商品。
uj5u.com熱心網友回復:
這個叫冪等性,即同一個操作,無論重復多少次,其結果應該是一致的。回到你這個問題,一個人發了10次秒殺,應該等同于發一次秒殺。那么你在redis應該記錄一下這個用戶的唯一標識,標識其是否進行過秒殺活動。
秒殺成功,同樣mysql也要做記錄,避免服務重啟等原因造成快取丟失,重復秒殺的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/72344.html
標籤:其他
