《redis解決高并發(fā)問題,如商品秒殺》要點:
本文介紹了redis解決高并發(fā)問題,如商品秒殺,希望對您有用。如果有疑問,可以聯(lián)系我們。
redis真的是一個很好的技術(shù),它可以很好的在一定程度上辦理網(wǎng)站一瞬間的并發(fā)量,例如商品搶購秒殺等活動...
redis之所以能解決高并發(fā)的原因是它可以直接拜訪內(nèi)存,而以往我們用的是數(shù)據(jù)庫(硬盤),提高了拜訪效率,解決了數(shù)據(jù)庫服務(wù)器壓力.
為什么redis的地位越來越高,我們?yōu)楹尾贿x擇memcache,這是因為memcache只能存儲字符串,而redis存儲類型很豐富(例如有字符串、LIST、SET等),memcache每個值最大只能存儲1M,存儲資源非常有限,十分消耗內(nèi)存資源,而redis可以存儲1G,最重要的是memcache它不如redis平安,當(dāng)服務(wù)器發(fā)生故障或者意外關(guān)機等情況時,redsi會把內(nèi)存中的數(shù)據(jù)備份到硬盤中,而memcache所存儲的東西全部丟失;這也說明了memcache不適合做數(shù)據(jù)庫來用,可以用來做緩存.
下面用redis辦理瞬間秒殺活動來說明:
下面這個程序模擬了20w人一瞬間涌入這個頁面進行秒殺,能夠秒殺成功的只有500人,我們把先進來的用戶放入redis隊列中,當(dāng)隊列中的用戶達到500時,后來用戶就轉(zhuǎn)到秒殺結(jié)束頁面.這里用隨機數(shù)來表示不同的用戶.
這里我們可以看到秒殺成功的第一個用戶的id是208522,秒殺成功的最后一個用戶是176260,參與秒殺人數(shù)總共是20w.(讓大家注意這些的原因是為了驗證下面的準(zhǔn)確性).
接下來我們依次從隊列中把秒殺成功的500個用戶取出來并觀察第一個用戶和最后一個用戶是否跟之前的記錄值一樣
我們可以看到從秒殺成功隊列中依次取出的第一個用戶id是208522,最后一個用戶是176260,可以看出結(jié)果是很準(zhǔn)確的.
redis在辦理高并發(fā)這方面的能力是真的挺不錯的.
歡迎參與《redis解決高并發(fā)問題,如商品秒殺》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/9210.html