我正在尋找Java Web應用程序的緩存解決方案。我們有一個Oracle數據庫實例和2-3個遠離我們數據庫的實例。 我們希望將數據本地緩存到我們的應用程序,因爲我們無法接受數據庫響應時間。 我們的數據集的平均大小(每個表格有幾千行),並且從我們的應用程序(無直接db訪問)手動修改(所以不是很經常)。需要Java緩存解決方案
所以我們一直在想的是一個解決方案,它允許我們獲得所有本地需要的數據。我們希望減少從數據庫中檢索的數據量並重寫到緩存。例如,當一個實體被修改時,我們不希望使該表上的所有緩存查詢無效,我們寧願希望能夠修改本地緩存查詢結果集,因此查詢仍然可以從本地運行緩存的數據。 緩存必須複製其更改\從數據庫中檢索由其他應用程序實例修改的數據。
我們一直在尋找EhCache作爲Hibernate二級緩存,但它會使任何表修改上給定表的所有緩存查詢無效。我快速瀏覽了Hibernate Services,但不知道它是否允許我們重寫hibernate的二級緩存默認行爲以滿足我們的需求。
我們可以使用其他解決方案嗎?
編輯我們想要非常快速地訪問數據。有效地,我們正在尋找的是一個可以緩存的緩存。
爲什麼不創建一個本地數據庫並將其複製到遠程?它將避免除連接字符串之外的任何代碼更改,提供更高的速度並確保與遠程數據庫的數據一致性。 –
您是否爲每個應用程序實例建議一個數據庫實例?對我來說似乎是一個很大的設置開銷。 –
否 - 在本地服務器/虛擬機上運行數據庫的完整副本,然後將其複製到遠程 - 以主/從關係。 –