大數據解決方案
使用快取: (建議學習:PHP影片教學 )
使用方式:1,使用程式直接儲存到記憶體中。主要使用Map,尤其ConcurrentHashMap。
使用快取框架。常用的框架:Ehcache,Memcache,Redis等。
最關鍵的問題是:何時建立緩存,以及其失效機制。
對於空資料的緩衝:最好用一個特定的類型值來保存,以區別空資料和未快取的兩種狀態。
分散式資料庫
將不同的表格存放到不同的資料庫中,然後再放到不同的伺服器中。有些複雜問題,如:事務處理,多表查詢。
NoSql和Hadoop
NoSql,not only SQL。沒有關係型資料庫那麼多限制,比較靈活高效。
Hadoop,將一個表格中的資料分層多塊,並保存到多個節點(分散式)。每一塊資料都有多個節點保存(叢集)。集群可以並行處理相同的數據,還可以確保數據的完整性。
高並發的解決方案
應用程式和靜態資源分離。
將靜態資源(js,css,圖片等)放到專門的伺服器。
頁面快取
將應用程式產生的頁面快取起來可以節省大量cpu資源。
對於部分頁面經常變換資料的,可以使用ajax來處理。
集群和分散式
集群,多台伺服器具有相同的功能,主要起分流的作用。
分散式,將不同的業務放到不同的伺服器中,處理一個請求可能需要多台伺服器,進而提高一個請求的處理速度。
又分為靜態資源叢集和應用程式叢集。後者較複雜,常要考慮session同步等問題。
反向代理
客戶端直接存取的伺服器並不是直接提供服務的伺服器,它從別的伺服器取得資源,然後將結果傳回給使用者。
CDN
CDN是一種特殊的叢集頁面緩衝伺服器,和普通的叢集的多台頁面緩衝伺服器相比主要區別是:其存放位置和分配請求方式不同。
CDN的伺服器分佈在全國各地,接收到請求後會將請求分配到最合適的CDN伺服器節點來取得資料。其每一個CDN節點就是一個頁面快取伺服器。
以上是php如何處理大數據高並發的詳細內容。更多資訊請關注PHP中文網其他相關文章!