我正在分析JCache参考实现,我找到了Hazelcast。所以问题是:
答案 0 :(得分:1)
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的重量级因素。也许其他人可以在这一点上讨好。
我在这里的建议是测试它和市场上的其他替代方案,从性能和可读性的角度来看,它最适合您的需求,与配置和配置所需的灵活性和严格性相对照。维护。