0
我正在分析JCache參考實現,並找到了Hazelcast。所以問題是:Hazelcast全球高級功能
- 有沒有辦法與Hibernate一起使用Hazelcast併爲不同的jpa實體設置不同的過期值? EHCache支持它,但我沒有設法爲Hazelcast做例子。
- Hazelcast是否支持緩存到文件系統和緩存到數據庫?
- 將它僅用作本地緩存是個好主意嗎?它不重量級?
我正在分析JCache參考實現,並找到了Hazelcast。所以問題是:Hazelcast全球高級功能
Hazelcast配置允許您定義命名的地圖區域,或者在Hibernate中說出區域。當您在實體上指定@Cache
時,除非您自己指定region
屬性,否則區域名稱將被解析爲實體的完全限定類名稱。
在你Hazelcast配置,你經常有這樣的事從Hazelcast文檔下采取:
<hazelcast>
<map name="com.company.feature.domain.SomeEntityClass">
<time-to-live-seconds>0</time-to-live-seconds>
<max-idle-seconds>0</max-idle-seconds>
<eviction-policy>LRU</eviction-policy>
<max-size policy="PER_NODE">5000</max-size>
<eviction-percentage>25</eviction-percentage>
<min-eviction-check-millis>100</min-eviction-check-millis>
</map>
</hazelcast>
每個地圖區域允許您定義的區域如何被驅逐。除非您定義驅逐策略或手動從緩存中移除元素,否則Hazelcast將無限期地緩存它們。歡迎您閱讀Hazelcast文檔,其中介紹了各種配置屬性所代表的內容以及它們的有效值集。
至於持續性,是Hazelcast允許您定義一個<mapstore/>
配置,其中您指定MapStore
和MapLoader
的實現,以便您可以將緩存保留爲您的需要。
最後,我不一定要對重量級因素的Hazelcast。也許其他人可以在這一點上做出貢獻。
我的建議是測試它和其他市場和配置文件中的選項,從性能和可用性角度來看最適合您的需求,從而衡量配置&維護所需的靈活性和剛性。