分析PHP中的快取技術

2021-08-25 04:31:32 字數 1266 閱讀 2520

關於php的快取技術我個人的定義是可以分成3個類別1;

快取模組這這個是在伺服器上做的快取設定, 比如zend公司的cache產品等, 主要原理是通過對php**檔案的一次編譯儲存在記憶體中, 通過減少i /o的操作來加快訪問速度, 不在本文討論範圍之列2;

html方式或許你說php生成html的方式不在本文討論的範圍之列, 但是我個人人為這種方式仍然是一種cache方式, 如現在流行的生成html 的程式也有不少,

比如國內的一些cms, 這個也不在本文討論的範圍之列, 一筆帶過;

3;生成cache檔案這個就是對一些常用的而且又不是經常變動的量, 儲存在文字中, 通過減少mysql的查詢量來加快程式執行, 詳細的內容我們隨後介紹4;

php快取機制舉個例子說, smarty模版裡面的快取機制, 比如目前discuz!論壇用的快取機制, 後面具體說 我是把目前php的cache分成了這四種機制,

第一種方式, 需要載入模組, 可能是收費的比如zend公司的, 可能是免費的, 不過多討論;

第二種方式, 比如在成熟的大的站點上用比較合適;

第三種方式和第四種四目前php業內程式中比較流行的方式以discuz!論壇軟體5;

0版本(或許你說了為什麼以 discuz!為例, 而不以phpwind或者其實cms為例, 主要是因為discuz!和我要說的後面兩種快取機制結合的比較好,

而其他軟體產品都或多或少的不太合適本文的要求)為例, 在第三種機制中, discuz!將基本設定和常用變數儲存在forumdata /

cache資料夾下面的乙個檔案中, 比如cache_settings;

php就是論壇設定的中的資料儲存在乙個陣列總並存在這個檔案中, 在需要這些變數的時候就通過include這個檔案來使用這些變數;

在第四種機制中, discuz!是把templates / default中的模版檔案, 預編譯, 也就是在請求訪問index;

php檔案的時候, 程式先在forumdata / templates中是否已經生成預編譯的檔案, 如果存在則包含, 如果沒有則在模版資料夾中尋找模版然後生成,

再包含, 這麼乙個處理流程在這種處理機制下, 在小負載小站點的情況下, 顯然會有不少浪費, 但是在中大站點或者說大型超大型站點的具體實施中, 表現優異,

但是顯然做論壇的貌似都是負載比較大, 國內水論壇一堆哇再過來看phpwind論壇, 做為國內php論壇唯一能在discuz!的壓力下值得一提的乙個論壇系統,

顯然在快取機制上的處理不是很好, pw以前貌似也是做文字論壇起家的, 同樣的文字對於i / o的壓力是很大的, 尤其是在大中型站點的負載均衡上

php快取技術 php快取技術的多種實現方法

普遍快取技術 資料快取 這裡所說的資料快取是指資料庫查詢php快取機制,每次訪問頁面的時候,都會先檢測相應的快取資料是否存在,如果不存在,就連線資料庫,得到資料,並把查詢結果序列化後儲存到檔案中,以後同樣的查詢結果就直接從快取表或檔案中獲得。用的最廣的例子看discuz的搜尋功能,把結果id快取到乙...

php快取技術 php快取技術的多種實現方法

普遍快取技術 資料快取 這裡所說的資料快取是指資料庫查詢php快取機制,每次訪問頁面的時候,都會先檢測相應的快取資料是否存在,如果不存在,就連線資料庫,得到資料,並把查詢結果序列化後儲存到檔案中,以後同樣的查詢結果就直接從快取表或檔案中獲得。用的最廣的例子看discuz的搜尋功能,把結果id快取到乙...

php快取技術

一 引論 php,一門最近幾年興起的web設計指令碼語言,由於它的強大和可伸縮性,近幾年來得到長足的發展,php相比傳統的asp 在速度上有絕對的優勢,想 mssql轉6萬條資料php如需要40秒,asp不下2分鐘.但是,由於 的資料越來越多,我們渴求能更快速的呼叫資料,不必要每次都從資料庫掉,我們...