簡體   English   中英

Ehcache和休眠

[英]Ehcache and Hibernate

我有一種情況,我正在顯示數據庫中的數據,該數據使用Spring MVC在網頁上經常更改(由外部應用程序更改),有點類似於庫存監視應用程序。 目前,我正在使用一個守護程序線程,該線程在Web容器啟動時啟動,每45秒查詢一次數據庫並將數據存儲在應用程序范圍的hashmap對象中。 然后,Web應用程序從哈希圖(而不是數據庫)讀取數據以顯示數據。

我已經閱讀了有關第三方緩存API的信息,例如EhcacheOSCache 我已經閱讀了有關Ehcache的文檔,似乎可以使用Hibernate查詢緩存技術代替守護線程了。

現在我的查詢(如果我使用休眠模式並啟用查詢緩存並將timetoidle設置為45秒)將自動刷新緩存中的數據以反映數據庫中的最新數據,還是我需要強制刷新(再次查詢數據庫並重新填充緩存)?緩存,您還能解釋什么是自填充緩存。

Ehcache文檔中SelfPopulatingCache被描述為:

Ehcache的自填充裝飾器,可按需創建條目。

這意味着當向SelfPopulatingCache請求一個值並且該值不在緩存中時,它將為您創建該值。 這篇博客文章提供了很多細節和代碼(包括自動更新)。

對我來說,聽起來最適合您的需求是Ehcache SelfPopulatingCache 因此,我建議您仔細看看。

據我所知,Hibernate 2級緩存肯定會幫助提高系統性能,但不能解決您的問題。 使用Ehcache並設置timeToIdleSeconds時確實如此,緩存在該時間之后過期,但不會自動刷新。

看看Hibernate文檔寫的關於查詢緩存的內容

查詢緩存不會在緩存中緩存實際實體的狀態。 它僅緩存標識符值和值類型的結果。 因此,對於那些預期作為查詢結果緩存的一部分進行緩存的實體,查詢緩存應該始終與二級緩存結合使用(就像集合緩存一樣)。

最后,OSCache已過時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM