ehcache 中怎么實現數據持久化,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
ehcache 和其他緩存類似,需要flush 或者shutdown 才會持久化到硬盤。
會生成.data 的數據文件和 .index 的索引文件,方便重啟恢復。
方法1:
<!-- ehcache 磁盤緩存 監控,持久化恢復 --> <listener> <listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class> </listener>
方法2:
在每次set 時就執行一次 flush
net.sf.ehcache.Cache ehCache = (net.sf.ehcache.Cache) cache.getNativeCache(); ehCache.flush();
方法3:
maxElementsInMemory設置成1,overflowToDisk設置成true,只要有一個緩存元素,就直接存到硬盤上去
<!-- maxElementsInMemory設置成1,overflowToDisk設置成true,只要有一個緩存元素,就直接存到硬盤上去 eternal設置成true,代表對象永久有效 maxElementsOnDisk設置成0 表示硬盤中最大緩存對象數無限大 diskPersistent設置成true表示緩存虛擬機重啟期數據 --> <cache name="a" maxElementsInMemory="1" eternal="true" overflowToDisk="true" maxElementsOnDisk="0" diskPersistent="true"/>
其他:
persistence:表示Cache的持久化,它只有一個屬性strategy,表示當前Cache對應的持久化策略。其可選值如下:
localRestartable:該策略只對企業版Ehcache有用。它可以在重啟的時候將堆內存或者非堆內存里面的元素持久化到硬盤上,重啟之后再從硬盤上恢復元素到內存中。
關于ehcache 中怎么實現數據持久化問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。