当前位置: 首页 > 知识库问答 >
问题:

Infinispan二级缓存自定义逐出策略

慕承允
2023-03-14

我计划使用infinispan作为我的Hibernate应用程序二级缓存。My all entities具有生命周期属性[新建-

简单地说,当实体生命周期属性状态到达已完成状态时,我想从缓存中驱逐实体。据我所知,Infinispan不支持自定义驱逐策略。处理我的情况的最佳方式是什么?

共有1个答案

漆雕彬彬
2023-03-14

我会在适当的时间使用Cache-API中的execute(key)方法来实现我自己的逻辑。

公共作废逐出(K键)

从缓存的内存中逐出条目。请注意,该条目不会从群集中任何已配置的缓存存储或任何其他缓存中删除(如果在群集模式下使用)。使用缓存。remove(Object)从整个缓存系统中删除条目。

具有“key1”的实体达到其完成状态后,可以启动ispnCache。逐出(“键1”) 用于逐出。

 类似资料:
  • 我有一个关于内存系统遵循的策略的基本问题。 考虑一个具有私有L1和L2缓存的核心。在L2缓存之后,我们有一个相干流量运行的总线。现在,如果从L2高速缓存中逐出地址(X)的高速缓存行,是否有必要从L1高速缓存中逐出该地址?? 逐出的原因可能是它有助于保持一致性协议的不变[如果l2中的一行显示无效,则此核心不包含此地址]。

  • 我正试图驱逐我的持久性实体管理器中的二级缓存。看起来我可以使用javax.persistence.Cache接口中定义的以下函数: 为了得到Cache对象,我可以使用javax.persistence.EntityManagerFactory接口中定义的以下函数: 我连接我的EntityManagerFactory是这样的: 使用以下applicationContext配置文件: 当我对对象调用g

  • 尝试使用infinispan作为Hibernate的二级缓存,但总是给我以下错误 org.infinispan.jmx.JMX MBean实例类型=CacheManager, name="DefaultCacheManager"已经在'org.infinispan'JMX域下注册。如果您想允许多个配置了相同JMX域的实例,请在org.infinispan.jmx.JmxUtil.buildJmxD

  • 使用咖啡因2.8.1和Java8。我已经创建了 如果值为。 问题#1:基于我想要实现的目标,我的过期策略看起来是否正确? 问题#2: 我没有看到按照逐出策略调用。这可能是由于github问题中所述的清理任务的累积。 然而,我的代码的正确性取决于这样一个事实:一个条目的过期时间(如果值为10分钟)已经过去,并且如果我们调用则不应从缓存返回过期值,而是调用即keyExistsOnServer(key)

  • 我使用infinispan缓存版本5.1.6。FINA。我已经配置了命名缓存: 我用它来只在内存中存储一些数据。我在创建缓存时使用此配置,其中key是,value是,并且只保留4个元素总是只有4个。为此,我硬编码了4个键:1L、2L、3L、4L,有时只是更改这些元素的值。 如果缓存包含键为1L和2L的两个元素以及一些值,并且我尝试将另外两个元素与他的值相加,那么它们会相互重放。因此,缓存只保存键为

  • 当你使用本地(在内存中)缓存时,服务器可以缓存一些信息并快速地检索它,但是其他服务器不能访问这个缓存数据,他们需要到数据库中查询同样的信息。 如果你喜欢使用分布式缓存让其他服务器访问缓存的数据,由于它有一些序列化/反序列化和网络延迟开销,则需要注意:在某些情况下,它可能会降低性能。 缓存需要处理的另一个问题:缓存失效。 There are only two hard things in Compu