1. 程式人生 > >小談php處理 大併發 大流量 大儲存

小談php處理 大併發 大流量 大儲存

一、判斷大型網站的標準:

1.pv(page views)網頁的瀏覽量:

概念:一個網站所有的頁面,在24小時內被訪問的總的次數。千萬級別,百萬級別,

2、uv值(unique vistor)獨立訪客

概念:一個網站,在24小時內,有多少個使用者來訪問我們的網站。達到10萬

3、獨立ip,重點內容

概念:一個網站,在24小時內,有多少個ip來訪問我們的網站。
uv值約等於獨立ip.如果要考慮區域網,uv值略大於獨立ip

這裡寫圖片描述

二、大型網站帶來的一些問題

1、大的併發。
併發量:在同一時間點(1秒內),有多少個使用者同時訪問我們的網站。對同一個網址,同時重新整理瀏覽器。達到500,就非常大了。
假如併發量是500,pv值是多少。500*3600*10

2、大流量。
網站需要的大的頻寬。10G.

3、大的儲存,
網站中的資料庫,表的容量成海量趨勢,GT級別,如何快速的查找出想要的資料。

三、大併發的解決方案:

1、負載均衡器:
硬體:f5-bigip 效能比較好,立竿見影,價格昂貴,一般適合於大型網站公司,網遊公司。

軟體:
lvs(linux virtual server)linux虛擬服務,加入到linux的核心中。
nginx:可以做web伺服器(apache),還可以做負載均衡。

2、負載均衡實現的方式:

主要有:
輪詢技術:客戶端請求伺服器輪流轉發。
ip雜湊:同一ip地址的客戶端,始終請求同一臺伺服器。
最少連線:把請求轉發給最空閒的伺服器。

3、叢集:

主要是解決計算機單點故障,在一個叢集中的計算機,只有一臺計算機工作,其他計算機處於休眠狀態,監視正在工作的計算機,當正在工作的計算機出現問題,則休眠的計算機立刻接替工作。

四、大流量解決方案:

1、防止我們的網站資源被盜鏈。

可以採用一些非技術手段防止被盜鏈,在圖片上新增水印

這裡寫圖片描述

2、減少http請求,

主要手段就是合併js檔案,css檔案,背景圖片的檔案。將瀏覽器需要的樣式檔案或者js檔案,合併成一個樣式檔案或js檔案。比如通過背景圖片舉個例子。

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

3、啟用壓縮,

減少資料傳輸的資料量,常見的壓縮格式是:gzip,deflate.

4、通過瀏覽器快取資料內容。


在網站中有一些資源,比如js檔案,css檔案,一些圖片檔案,更新的頻率比較少。通過個設定http的cache-control expires屬性來進行設定快取,可以設定快取的檔案型別,設定快取的快取週期,

5、可以把比較佔用流量的一些資源,單獨組建一個伺服器,
比如圖片伺服器,視訊伺服器等。

這裡寫圖片描述

五、大儲存解決方案:

1、快取技術:
通過快取技術,達到不查詢資料庫或者少查詢資料庫的目的。
計算機的訪問速度,記憶體》硬碟檔案》資料庫
快取技術主要有:
磁碟快取(頁面靜態化),把一個查詢資料庫的頁面變成一個不查詢資料庫的頁面
記憶體快取:把經常查詢的資料儲存到記憶體裡面,下次查詢資料時候直接在 記憶體裡面查詢。
(memcache/redis/mysql的memory引擎)

2、在設計表的時候,要滿足3正規化
第一正規化是:原子性,欄位不能再分割了。只要是關係型資料庫就自動滿足第一正規化:
資料庫的分類:
關係型資料庫:有行和 列的概念,二維表格。常見的關係型資料庫:mysql,sql server,oracle,db2,
非關係型資料庫(nosql)面向集合和 文件的,沒有行和列的概念常見的有redis/mongodb等。
第二正規化:在一個表中不能有完全相同的記錄。可以通過設定一個主鍵。
第三正規化:表中的欄位不能冗餘儲存。

3、要給表新增適當的索引:索引非常重要的,可以提高查詢速度。
常見索引有:主鍵索引,唯一索引,普通索引,全文索引,

4、要建立適當的儲存過程,函式,觸發器等。

5、讀寫分離(主從伺服器)

6、分表技術(垂直分割和水平分割)

7、分割槽技術

把一個表的資料內容,在不同的 區域儲存,

8、升級mysql伺服器(新增配置:加大內容,64位)

9**、要對sql語句進行調優**
select * from tablename 該語句不要使用,要按需查詢。需要哪個欄位的資料,就查詢哪個欄位的資料。

10、對配置檔案進行優化配置。
比如配置mysql資料庫的併發量:
這裡寫圖片描述