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

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

實現原理:list雙向鏈表redis

使用redis隊列,由於pop操做是原子的,即便有不少用戶同時到達,也是依次執行.(mysql事務在高併發下性能降低很厲害,文件鎖的方式也是).sql

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

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

 

'隊列':從鏈表的尾部添加元素,先進先出高併發

 

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

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

 


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

 

 

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

相關文章
相關標籤/搜索