我試圖將緩存引入現有的服務器應用程序,因爲數據庫開始變得過載。有許多類似數據庫查詢的高速緩存管理
與許多服務器應用程序一樣,我們有數據層的概念。這個數據層有許多不同的方法返回域模型對象。例如,我們已經用類似方法僱員數據訪問對象:
- findEmployeesForAccount(長的accountId)
- findEmployeesWorkingInDepartment(長帳戶ID,長DepartmentID的)
- findEmployeesBySearch(長帳戶ID,字符串搜索)
每種方法查詢數據庫並返回Employee域對象列表。
顯然,我們想盡可能地嘗試緩存來限制查詢數據庫的次數,但是我們將如何去做呢?
我看到一對夫婦可能的解決方案:
1)我們爲每一個方法調用的緩存。例如。對於findEmployeesForAccount,我們將添加一個具有關鍵account-employees-accountId的條目。對於findEmployeesWorkingInDepartment,我們可以添加一個關鍵字department-employees-accountId-departmentId等等。我看到的問題是,當我們向系統中添加新員工時,我們需要確保將其添加到每個適當的列表中,這似乎很難維護並且易於出錯。
2)我們爲findEmployeesForAccount(包含更多連接和/或查詢,因爲需要更多信息)創建更通用的查詢。對於其他方法,我們使用findEmployeesForAccount並從列表中刪除不符合指定條件的條目。
我是新來的緩存,所以我想知道人們用什麼策略來處理這種情況?任何建議和/或資源在這種類型的東西將不勝感激。