關(guān)于redis秒殺的面試題 redis為什么能實(shí)現(xiàn)秒殺?
redis為什么能實(shí)現(xiàn)秒殺?Redis是一個(gè)單線程,可以很好的解決并發(fā)問(wèn)題如果用普通的代碼邏輯來(lái)實(shí)現(xiàn)秒殺,就會(huì)出現(xiàn)并發(fā)問(wèn)題,導(dǎo)致多人秒殺成功,貨物超期交付。2使用redis可以對(duì)并發(fā)請(qǐng)求進(jìn)行排隊(duì),就像
redis為什么能實(shí)現(xiàn)秒殺?
Redis是一個(gè)單線程,可以很好的解決并發(fā)問(wèn)題
如果用普通的代碼邏輯來(lái)實(shí)現(xiàn)秒殺,就會(huì)出現(xiàn)并發(fā)問(wèn)題,導(dǎo)致多人秒殺成功,貨物超期交付。2使用redis可以對(duì)并發(fā)請(qǐng)求進(jìn)行排隊(duì),就像人群中的人先一個(gè)接一個(gè)地排隊(duì)一樣,通過(guò)redis成功地減少庫(kù)存,然后減少網(wǎng)站數(shù)據(jù)庫(kù)中的庫(kù)存。當(dāng)redis中的庫(kù)存沒(méi)有請(qǐng)求時(shí),將不會(huì)再次輸入數(shù)據(jù)。秒殺不會(huì)再成功了
redis的高可用性主要有主從模式、哨兵模式和集群模式。這些模式的具體實(shí)現(xiàn)原理和演進(jìn)思路可以參考:
【redis高可用架構(gòu)演進(jìn)——今日頭條】https://m.toutiao.com/is/eejkhKG/
redis高可用實(shí)現(xiàn)原理?
Redis以單個(gè)進(jìn)程的形式運(yùn)行,命令一個(gè)接一個(gè)地執(zhí)行,解決了程序的并發(fā)問(wèn)題。所以當(dāng)數(shù)據(jù)涉及到并發(fā)問(wèn)題時(shí),比如秒殺,我們將數(shù)據(jù)行存儲(chǔ)在redis中,然后用戶請(qǐng)求減少redis中的庫(kù)存。Redis是單線程,所以Redis reduction成功后不會(huì)減少庫(kù)存,后續(xù)請(qǐng)求被拒絕,然后在數(shù)據(jù)庫(kù)中減少庫(kù)存,這樣就不會(huì)出現(xiàn)負(fù)庫(kù)存的問(wèn)題。這是基本的工作原理