在高並發的業務中,伴隨的問題是如何準確、無錯誤的處理用戶的請求,並能快速的給予響應是關鍵所在,對於數據庫在並發中會導致壓力驟增,數據可能不統一的問題。所以程式的設計至關重要。主要的場景如:搶票,秒殺商品等…
一、使用memcacheq訊息佇列
佇列先進先出的儲存使得我們可以設定秒殺的商品數量作為上限,並存入緩存,在用戶瞬時請求伺服器時判斷目前請求數量是否大於商品總量,大於則跳入靜態的失敗頁面,如果符合則進入程序的下一個流程。
二、使用memcached快取限流
可以透過對使用者請求逐個限時處理達到對資料庫的壓力減小,並能提供可靠的數據,使用兩個快取達到控制請求進入資料的目的,如設定key1為true,這時使用者可以搶到並進入之後的流程,在進入的同時將該值改為false,其他請求不能進入(進入等待,並遞歸調用),當前一請求處理完成後恢復其值,具體情況按需求而定。
三、分散式狀況
如果是分散式的伺服器集群,將商品數量分別平均到每個伺服器上,同樣是判斷是否合乎要求,如同方案一
版權聲明:本文為部落客原創聲明:本文為部落客原創聲明文章,未經博主允許不得轉載。
以上就介紹了PHP 處理高並發問題,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。