PHP 常用的 Redis、Memcached 是高性能的分布式內(nèi)存緩存,可以將數(shù)據(jù)緩存到系統(tǒng)內(nèi)存中。但也使得系統(tǒng)依賴于其他服務(wù),在虛擬主機中也不支持安裝,這時候,使用文件緩存就是一個可行的選擇。
文件緩存就是文件的存儲實現(xiàn)緩存,將數(shù)據(jù)寫入文件中,獲取時讀取文件內(nèi)容。為了避免一個文件內(nèi)的數(shù)據(jù)過大,讀取文件時造成較高的延遲,存儲結(jié)構(gòu)一般采用一個Key 對應(yīng)一個文件的方式。寫入的數(shù)據(jù)進(jìn)行序列化處理,可以把過期時間寫入到文件中支持Key自動失效。使用 Hash 算法一次計算出文件位置,能夠快速的定位到文件路徑。
一般使用 FIFO 緩存更新策略,進(jìn)入緩存的數(shù)據(jù)在緩存空間不足的情況下,會首先被清理。在一些數(shù)據(jù)庫數(shù)據(jù)記錄較大,服務(wù)器有限的場景時,使用文件緩存來緩解下數(shù)據(jù)庫讀取的壓力。