2015-01-12 50 views
1

我正在緩存方法的結果(顯然帶有它的簽名),以便它不會每次在我的數據存儲上進行復雜的查詢。我的緩存工作正常。充分利用緩存

我的問題是:

我應該如何找到超時在緩存中的項目的最優值?

什麼應該是緩存中條目的最佳數量?

我可以改變它們以改善我的應用程序的性能嗎?

假設影響緩存的性能變量的各種因素,並給我一個公式,以幫助瞭解如何優化緩存?

回答

1

There are two hard problems in computer science: cache invalidation and naming things。首先,我確定你需要一個緩存。這取決於你使用的是什麼類型的數據存儲(redis,顯然)。如果它是傳統的RDBMS,那麼最好先確定索引策略是否緊湊。引入緩存的麻煩在於,在某些時候,早一些而不是晚一些,以及多次之後,您將得到不一致的緩存。高速緩存失效與原始數據存儲無關,因此某些內容會觸發無效消息,但無法到達目標,並且緩存將過期。因此,在介紹它之前,確保你需要緩存。就緩存超時而言 - 越早越好。一個小時很棒,一天不如此。如果某些事情不同步,那麼它會自行解決,而不是引起持續的問題。此外,如果您將緩存超時設置爲一週或更長時間,則緩存將開始像數據存儲一樣運行,而這一切都是由它自己完成的;如果它失敗了,你不得不重建它,那麼你將會受到很大的性能影響。所以在這種情況下更少。最後,請確保確保爲緩存中的所有內容設置緩存超時。對於memcache來說,默認情況下沒有過期日期非常簡單,在這種情況下,您的緩存實際上將開始像數據存儲一樣行事。不要讓這種事情發生;我去過那裏,等待一個星期讓你的網站恢復並不好玩。