[英]Ehcache and Hibernate
我有一種情況,我正在顯示數據庫中的數據,該數據使用Spring MVC在網頁上經常更改(由外部應用程序更改),有點類似於庫存監視應用程序。 目前,我正在使用一個守護程序線程,該線程在Web容器啟動時啟動,每45秒查詢一次數據庫並將數據存儲在應用程序范圍的hashmap對象中。 然后,Web應用程序從哈希圖(而不是數據庫)讀取數據以顯示數據。
我已經閱讀了有關第三方緩存API的信息,例如Ehcache和OSCache 。 我已經閱讀了有關Ehcache的文檔,似乎可以使用Hibernate查詢緩存技術代替守護線程了。
現在我的查詢(如果我使用休眠模式並啟用查詢緩存並將timetoidle設置為45秒)將自動刷新緩存中的數據以反映數據庫中的最新數據,還是我需要強制刷新(再次查詢數據庫並重新填充緩存)?緩存,您還能解釋什么是自填充緩存。
在Ehcache文檔中 , SelfPopulatingCache
被描述為:
Ehcache的自填充裝飾器,可按需創建條目。
這意味着當向SelfPopulatingCache
請求一個值並且該值不在緩存中時,它將為您創建該值。 這篇博客文章提供了很多細節和代碼(包括自動更新)。
對我來說,聽起來最適合您的需求是Ehcache SelfPopulatingCache
。 因此,我建議您仔細看看。
據我所知,Hibernate 2級緩存肯定會幫助提高系統性能,但不能解決您的問題。 使用Ehcache並設置timeToIdleSeconds
時確實如此,緩存在該時間之后過期,但不會自動刷新。
查詢緩存不會在緩存中緩存實際實體的狀態。 它僅緩存標識符值和值類型的結果。 因此,對於那些預期作為查詢結果緩存的一部分進行緩存的實體,查詢緩存應該始終與二級緩存結合使用(就像集合緩存一樣)。
最后,OSCache已過時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.