1. 程式人生 > >電商項目中使用Redis實現秒殺功能

電商項目中使用Redis實現秒殺功能

鏈表 sql事務 電商 設置 庫存量 文件 byte 秒殺 []

參與過搶購活動就知道,很明顯的一點是商即便商品實際沒有了也是可以下單成功的,但是在支付的時候會提示你商品沒有了。

實現原理:list雙向鏈表

使用redis隊列,因為pop操作是原子的,即使有很多用戶同時到達,也是依次執行.(mysql事務在高並發下性能下降很厲害,文件鎖的方式也是).

此處用到了Redis中的鏈表(list)數據類型:

‘棧‘:從鏈表的頭部添加元素,先進後出

‘隊列‘:從鏈表的尾部添加元素,先進先出

redis保存數據時都有key和value,key和value要麽是String類型的,要麽是byte[]類型的

第一步:先將商品庫存存入隊列

技術分享圖片


第二步:搶購開始,設置庫存的緩存周期

技術分享圖片

第三步:客戶端執行下單操作,下單前判斷redis隊列庫存量

技術分享圖片

電商項目中使用Redis實現秒殺功能