2012-04-23 38 views
0

假設您有一個將數據保存在數據庫中的分層應用程序。爲了加快訪問速度,您希望將數據(或其關鍵部分)保存在內存中。在哪一層將數據保存在內存中?

在哪一層(數據庫層或邏輯層)最好將數據保存在內存中? 在使用業務邏輯處理之前還是之後?

如果在應用業務邏輯之前將其保存在內存中,那麼需要對數據庫進行很少的調用,但是會失去很多靈活性(因爲您無法將工作委託給較低級別​​)。

有沒有關於這個東西的一些模式或最佳實踐?

回答

1

這取決於您的架構,以及您自己指出的用例。從一般觀點來看,高速緩存可以在兩個邏輯或數據層中的任何一箇中實現,甚至在兩個甚至兩個服務層中實現。例如。在Restful體系結構中,我們可以假設GET調用只是冪等讀取,並且不會更改數據,因此它們也可以被緩存。

因此得出結論,緩存策略必須是您的實際需求的後續影響。在您的開發過程中,您應該可以輕鬆地在任何層獲取,以便在需要時快速部署(Restful原則有很大幫助)。從小處開始,然後添加。 )從Twitter

實施例:http://www.infoq.com/news/2009/06/Twitter-Architecture

2

關鍵字是數據

在數據訪問層中使用緩存策略後,您可以將整個業務層代碼專用於解決業務問題。

+0

我曾經說過,替代方法是在應用業務邏輯之前緩存數據。這不會以任何方式影響業務邏輯。 – m3th0dman 2012-05-02 08:20:42