2013-08-06 16 views
-1

安裝程序是一個運行帶apc的apache的Linux機器。 TwoLevels-緩存計劃爲apc +文件。即使數據保存在第一級,Zend兩級緩存是否可以將所有內容保存到第二級?Zend_Cache_Backend_TwoLevels如何處理重新啓動的服務器

我想知道如果我重新啓動我的服務器會發生什麼。第一級apc緩存中的數據會丟失還是可以從第二級文件緩存中檢索?

回答

0

從代碼的外觀來看,答案是「取決於」。如果優先級足夠高並且快速緩存未滿或快速填充,則數據將存儲在兩個高速緩存中。否則它只會被存儲在'緩慢'緩存中。

但是我確定重啓後APC緩存將爲空。 PHP沒有任何明智的方法來檢測這種情況,併爲您備份緩存,並且沒有真正的理由。您的應用程序不應該依賴存在的緩存數據,並且應該在缺失時重新生成它。

+0

謝謝Tim!我不是依靠緩存來存儲數據,而是依賴性能。當第一級「丟失」時,從第二級永久緩存獲取重要數據,例如通過重新啓動,最有可能比第一次訪問時重新計算和回收數據更快。同樣在我的應用程序中,如果數據從第二級移動到第一級,則最好複製而不是移動數據,以便它保留在第二級以供以後參考。這並不總是很聰明,所以我想知道Zend TwoLevels Cache使用哪種方式。 – Armin

+0

也許你可以設置一個在啓動時運行的PHP腳本來預熱這些緩存以避免緩慢的第一次訪問問題。 –