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