本篇文章給大家帶來了關于Redis的相關知識,其中主要介紹了關于實現秒殺的相關內容,包括了秒殺邏輯、存在的鏈接超時、超賣和庫存遺留的問題,下面一起來看一下,希望對大家有幫助。
推薦學習:Redis視頻教程
1、秒殺邏輯
秒殺:解決計數器和人員記錄的事務操作
- 1.uid和proid非空判斷
- 2.連接redis
- 3.拼接key
- 庫存key
- 秒殺成功用戶key
- 4.獲取庫存,如果庫存為null,秒殺還沒開始
- 5.判斷用戶是否重復秒殺操作
- 6.判斷商品數量,庫存數量小于1,秒殺結束
- 7.秒殺過程
- 庫存-1
- 把秒殺成功用戶添加清單里面
2、存在問題
2.1、連接超時
原因:由于大量創建連接,十分消耗性能,并且有時獲取連接不及時,出現連接超時的情況
2.2、超賣
在并發的情況下發生的,就是在輸出沒有庫存(秒殺結束)后還有商品售出導致庫存數量為負數。
2.3、庫存遺留
使用樂觀鎖解決問題2之后,出現問題3
如果庫存數量相對并發