1. 程式人生 > >利用redis進行商品秒殺

利用redis進行商品秒殺

開始 alt user 返回 num 關於 技術分享 線程 signed

這裏是用redis的list集合開發,redis的list集合是具有原子性的,不必擔心多線程時會取到重復的數據,即使請求同時到達也會排隊進行數據操作

1. 先說說大概思路,關於數據庫庫存字段的設計.數據類型設置為非負數的unsigned, 如果秒殺的商品數量為50個. 秒殺開始前在redis裏面建一個類型為list,鍵名為goods_num_商品id 的鍵,存入50個元素.元素值可隨意取.

2. 建一個鍵名為user_id_商品id 的鍵,每次用戶秒殺成功,把用戶id存入裏面,用來判斷是否成功秒殺過.如果成功秒殺過則直接返回提示. 下面貼代碼

技術分享圖片

技術分享圖片

這裏的庫存表的增減,可以不寫,到秒殺活動結束後再進行數據操作.這只是簡單的模擬,真實的業務場景可能會更加的復雜.

利用redis進行商品秒殺