鍍金池/ 問答/PHP/ PHP 如何先進先出處理高并發(fā)問題

PHP 如何先進先出處理高并發(fā)問題

例如投票只能投一次,程序先搜索他有沒有投過票,沒有的話就插入記錄
如果該用戶用并發(fā)工具投票,檢查時候,多個請求都沒有查到數(shù)據(jù),就能投多票

能否把{select insert}這段代碼打包先進先出,只能一個用戶進去執(zhí)行這段代碼

回答
編輯回答
吃藕丑

將投票信息存儲到redis隊列中,并且以第一次投票為準,后面再投票就去redis中查,有則拒絕投票,前端在點擊按鈕后使其失效

2017年8月27日 18:53
編輯回答
鹿惑

用redis鎖,確保單進程,網(wǎng)上都有的,利用redis的原子性

2017年3月5日 22:04
編輯回答
歆久

隊列了解一下,搭配redis,用一個list維護隊伍,每個投票請求到達后rpush到list里,然后理解回復成功。服務器端終端運行php腳本,while一個loop,blpop list,獲取信息并進行處理。這樣每次就處理一個。

2018年1月22日 18:13