需要java infinispan hibernate二级缓存XML配置格式
我们目前正在使用ehcache作为二级缓存,在我们的应用程序中具有以下配置
<!-- Configure 2nd level cacheing for these entities -->
<cache name="cacheEntity1"
maxElementsInMemory="1500"
eternal="true"
overflowToDisk="false"/>
<cache name="cacheEntity2"
maxElementsInMemory="3500"
eternal="true"
overflowToDisk="false"/>
我们计划转移到infinispan缓存。通过查看infinispan的文档,我们无法找到任何用于定义缓存实体的XML配置示例,类似于上面使用ehcache定义的缓存实体
我们希望在hibernate实体级别配置以下属性(maxInMemory、timeToIdleSeconds、timeToLiveSeconds)
我们更喜欢使用XML进行配置,而不是使用编程方式
有什么建议吗
谢谢
萨达希夫
# 1 楼答案
@Sada,对于Infinispan Hibernate缓存,我强烈建议您查看我们的简单教程here。它们涵盖独立、Spring和WildFly用例。我从那里开始
另外,请参阅我们用于缓存配置的base configuration。LIRS不在使用中,在本地将二级缓存持久化到磁盘是没有意义的,它只会降低速度或不必要地消耗额外的资源
# 2 楼答案
我建议您配置一个配置了逐出策略的缓存
例如(在缓存容器配置中)
如果希望将条目溢出到磁盘,可以向本地缓存中添加一个持久性存储
例如
逐出通常与缓存存储一起使用(逐出时条目不会永久丢失)。逐出仅从内存中删除条目,而不是从缓存存储中删除条目。见infinispan docs
您可以选择不同的逐出策略(无、无序、LRU、LIRS、手动)。请记住,某些策略在Infinispan的最新版本中已被弃用eviction strategies
如果要将寿命和/或最大空闲时间附加到条目,则可以选择过期expiration
例如
希望能有帮助