PHP快取技術的使用技巧分享

2021-06-16 04:50:13 字數 1303 閱讀 3064

php快取技術的應用時相當普遍的,也許有些人還對這項技術不太了解,我們現在就為大家詳細的介紹一下php快取技術的相關應用技巧。

在大部份情況下我們的**都會使用資料庫作為站點資料儲存的容器。當你執行乙個sql查詢時,典型的處理過程是:連線資料庫->準備sql查詢->傳送查詢到資料庫->取得資料庫返回結果->關閉資料庫連線。但資料庫中有些資料是完全靜態的或不太經常變動的,快取系統會通過把sql查詢的結果快取到乙個更快的儲存系統中儲存,從而避免頻繁運算元據庫而很大程度上提高了程式執行時間,而且快取查詢結果也允許你後期處理。

普遍使用的php快取技術

php快取技術之資料快取:

這裡所說的資料快取是指資料庫查詢快取,每次訪問頁面的時候,都會先檢測相應的快取資料是否存在,如果不存在,就連線資料庫,得到資料,並把查詢結果序列化後儲存到檔案

中,以後同樣的查詢結果就直接從快取檔案中獲得。

php快取技術之頁面快取:

每次訪問頁面的時候,都會先檢測相應的快取頁面檔案是否存在,如果不存在,就連線資料庫,得到資料,顯示頁面並同時生成快取頁面檔案,這樣下次訪問的時候頁面檔案就發揮作用了。(模板引擎和網上常見的一些快取類通常有此功能)

php快取技術之記憶體快取:

memcached是高效能的,分布式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提公升訪問速度。

dbcached 是一款基於 memcached 和 nmdb 的分布式 key-value 資料庫記憶體快取系統。

以上的快取技術雖然能很好的解決頻繁查詢資料庫的問題,但其缺點在在於資料無時效性,下面我給出我在專案中常用的方法:

php快取技術之時間觸發快取:

檢查檔案是否存在並且時間戳小於設定的過期時間,如果檔案修改的時間戳比當前時間戳減去過期時間戳大,那麼就用快取,否則更新快取。

設定時間內不去判斷資料是否要更新,過了設定時間再更新快取。以上只適合對時效性要求不高的情況下使用,否則請看下面。

php快取技術之內容觸發快取:

當插入資料或更新資料時,強制更新快取。

在這裡我們可以看到,當有大量資料頻繁需要更新時,最後都要涉及磁碟讀寫操作。怎麼解決呢?我在日常專案中,通常並不快取所有內容,而是快取一部分不經常變的內容來解決。但在大負荷的情況下,最好要用共享記憶體做快取系統。

到這裡php快取也許有點解決方案了,但其缺點是,因為每次請求仍然要經過php解析,在大負荷的情況下效率問題還是比效嚴重,在這種情況下,也許會用到靜態快取。

php快取技術之靜態快取

這裡所說的靜態快取是指html快取,html快取一般是無需判斷資料是否要更新的,因為通常在使用html的場合一般是不經常變動內容的頁面。資料更新的時候把html也強制更新一下就可以了。

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

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

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

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

php快取技術

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