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