一、判斷大型網站的標准
1、pv值(page views)網站瀏覽量:
概念:一個網站,所有的頁面,在一天24小時內,被訪問的總量,達到千萬級別,或者幾百萬以上。
2、uv值(unique visitor)獨立訪客:
概念:一個網站,在一天24小時內,有多少個用戶來訪問我們的網站。uv值幾十萬個,
3、獨立 ip,
概念:一個網站,在一天24小時內,有多少個獨立ip來訪問我們的網站。
如果要考慮公司的局域網,uv值略大於獨立ip的。
二、大型網站帶來哪些問題:
1、高的並發量。
並發量:一個網站的,在同一個時間點(1秒內),有多少個用戶正在請求同一個地址的網站。
2、大的流量(帶寬)
帶寬需求變大。
3、數據存儲的問題。
當數據表里面的記錄非常大,從容量來說,達到 GT級別,要快速的查找到想要的數據。
三、高並發如何解決:
網站的架構,采用分層設計,使用負載均衡和集群。
四、如何解決大流量
1、防止網站的資源被盜鏈,存在於一些大的資源類型的網站
2、減少了http請求,
可以把一些css樣式文件和js,一些背景圖,合並成一個文件。
3、配置瀏覽器緩存
把一些更新不是很頻繁的資源,比如css,js,圖片,緩存到瀏覽器端,當瀏覽器請求同一資源時,直接從瀏覽器緩存里面取出。
4、配置壓縮,減少數據傳輸量
5、可以把比較占流量的一些資源單獨部署服務器。
6、花錢買帶寬。
五、大存儲的解決方案:
最終目標:不查詢數據庫或少查詢數據庫,在查詢數據庫時,要快速的查詢到數據。
1、使用服務器端的緩存。
(1)磁盤緩存(頁面靜態化技術)
(2)內存緩存
內存緩存技術:
memcache,redis,mongodb,mysql的memory存儲引擎
2、優化數據庫
六、頁面靜態化技術
把一個動態(操作數據庫)的php頁面,轉換成一個靜態的.html頁面
實現步驟;
一個http請求,返回的數據分兩部分,響應頭部信息和響應主體。
(1)拿到響應主體數據內容。(ob緩沖)
(2)把響應主體數據內容,寫入到html文件中,(file_put_contents)
(3)直接訪問html文件。
1、ob緩存內容:
ob緩存:output_buffering(輸出緩存),用於緩存響應主體的數據內容。
如何開啟:
第一種方式:在php.ini文件中,
第二種方式:在頁面中使用ob_start()函數,來開啟。
兩種方式的區別是,ob_start()只在當前頁面有效,
2、常用函數
ob_start( );開啟 ob_get_contetns();獲取ob緩存里面的數據內容。
ob_clean();//清空ob緩存里面的數據,不關閉ob緩存。
ob_end_clean();//清空ob緩存里面的數據,並關閉ob緩存。
ob_flush();//把ob緩存里面的數據給刷新(移動,推送)到程序緩存,不關閉ob緩存。
ob_end_flush();//把ob緩存里面的數據給刷新(移動,推送)到程序緩存,並關閉ob緩存。
3、網站靜態化:
真靜態:實實在在的生成一個html頁面。
偽靜態:從表面上看是訪問的一個靜態頁面,實際上還是訪問的是動態頁面。比如如下地址:
http://www.abc.com/news-music-id12_10.html
實際上是訪問:http://www.abc.com/news.php?type=music&id=12&page=10頁面。
偽靜態主要是利於seo的。
實現方式:
真靜態實現方式:
第一種:使用ob緩存技術。
第二種:使用模板替換技術
偽靜態的實現方式:使用apache的 rewrite機制(url重寫機制)
哪些網站適合於真靜態?
網站頁面訪問比較頻繁的,更新不是很頻繁,比如一些新聞類型的網站,不適合於要求實時更新的一些網站,比如股票類型的網站,