有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

需要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进行配置,而不是使用编程方式

有什么建议吗

引用-https://infinispan.org/docs/8.2.x/user_guide/user_guide.html#_using_infinispan_as_jpa_hibernate_second_level_cache_provider

谢谢

萨达希夫


共 (2) 个答案

  1. # 1 楼答案

    @Sada,对于Infinispan Hibernate缓存,我强烈建议您查看我们的简单教程here。它们涵盖独立、Spring和WildFly用例。我从那里开始

    另外,请参阅我们用于缓存配置的base configuration。LIRS不在使用中,在本地将二级缓存持久化到磁盘是没有意义的,它只会降低速度或不必要地消耗额外的资源

  2. # 2 楼答案

    我建议您配置一个配置了逐出策略的缓存

    例如(在缓存容器配置中)

          <local-cache name="cacheEntity1" >
             <eviction max-entries="1500" strategy="LIRS"/>
          </local-cache>
          <local-cache name="cacheEntity2" >
             <eviction max-entries="3500" strategy="LIRS"/>
          </local-cache>
    

    如果希望将条目溢出到磁盘,可以向本地缓存中添加一个持久性存储

    例如

          <local-cache name="cacheEntityX" >
             <eviction max-entries="3500" strategy="LIRS"/>
             <persistence passivation="false">
                <file-store path="/mydata/FileCacheStore-LocationX" />
             </persistence>
          </local-cache>
    

    逐出通常与缓存存储一起使用(逐出时条目不会永久丢失)。逐出仅从内存中删除条目,而不是从缓存存储中删除条目。见infinispan docs

    您可以选择不同的逐出策略(无、无序、LRU、LIRS、手动)。请记住,某些策略在Infinispan的最新版本中已被弃用eviction strategies

    如果要将寿命和/或最大空闲时间附加到条目,则可以选择过期expiration

    例如

     <local-cache name="cacheEntityX" >
         <eviction max-entries="3500" strategy="LIRS"/>
         <expiration lifespan="1000" max-idle="500" interval="1000" />
         <persistence passivation="true">
            <file-store path="/mydata/FileCacheStore-LocationX" />
         </persistence>
      </local-cache>
    

    希望能有帮助