2010-07-02 101 views
3

Hy there。我需要爲我的PHP Web應用程序實現緩存。我實現了緩存文件控制(保存並從緩存目錄獲取文件),但現在我需要強制執行緩存文件夾最大大小控制,因爲緩存文件夾應限制在最大大小。用最大大小的緩存文件夾實現PHP緩存

我有一個想法,通過在需要空間時刪除最少使用的文件來限制大小。現在,我讀過在緩存dir中的所有文件上使用fileatime函數會減慢我的應用程序。

有沒有其他的方法在你的腦海裏浮現?

(DB(MySQL的)使用,用於存儲上次訪問時間緩存文件,不幸的是,不可實現的。)

+2

您是否嘗試過使用現有緩存機制(如APC或Memcache)?他們會自動處理這種事情。 – 2010-07-02 10:15:49

回答

3

爲什麼不使用清理每小時cron作業?

任何檢查你在每個請求必然是昂貴的。

如果這是不可能的,保留一箇中央文本文件來存儲修改時間可能是最好的方法,但是你會遇到鎖定問題。

+0

cron作業方法工作的非常好,你可以這樣做,如果web服務器真的很忙,那麼你可以「跳過」一個清理,然後等到cronjob再次啓動,並且服務器不那麼繁忙......基本上你有更多的控制和更多的速度 – Quamis 2010-07-02 10:40:23