新聞中心
php使用redis怎么解決秒殺中的超賣問題?
超賣問題的根本原因還是在于并發(fā),服務端對于并發(fā)處理的能力不足造成了超賣問題;

公司主營業(yè)務:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出安義免費做網(wǎng)站回饋大家。
應對高并發(fā)問題一方面要提高服務端的請求處理能力,比如使用redis的事務(witch+multi)來提高處理速度。
另一方面就是削峰;常見的方案是通過消息隊列緩沖瞬時請求高峰;通過消息隊列可以吧同步請求轉(zhuǎn)換成異步推送通知,通過隊列一端承接瞬時訪問高峰,另一端則平滑地將消息推送出去,達到削峰目的。
個人見解,希望對您的問題有所幫助!
使用redis 的隊列+watch解決,把秒殺商品放入隊列,搶到則pop商品,隊列用完,則停止搶購
header("content-type:text/html;charset=utf-8");
$redis = new redis();
$result = $redis->connect('127.0.0.1', 6379);
$mywatchkey = $redis->get("mywatchkey");
$rob_total = 100; //搶購數(shù)量
if($mywatchkey<$rob_total){
$redis->watch("mywatchkey");
$redis->multi();
到此,以上就是小編對于的問題就介紹到這了,希望這1點解答對大家有用。
網(wǎng)站欄目:php使用redis怎么解決秒殺中的超賣問題?phprediswindows
鏈接分享:http://www.dlmjj.cn/article/cohhssi.html


咨詢
建站咨詢
