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

Spring Infinispan-设置缓存对象的到期时间

邹英发
2023-03-14

我们目前正在使用下面的。它很旧,但现在无法升级到更高版本

`
  <dependency>
     <groupId>org.infinispan</groupId>
     <artifactId>infinispan-spring3</artifactId>
     <version>6.4.0.Final-redhat-4</version>
  </dependency>
  <dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-client-hotrod</artifactId>
    <version>6.4.0.Final-redhat-4</version>
  </dependency>
`

我们已经将代码从直接JDG实现(如下所示)修改为基于XML的配置文件中的SpringRemteCacheManager,并使用Spring cache:建议来定义可缓存、cahce-put、cache-evict方法。

请参阅当前代码,其中我们可以控制添加到期时间。我们也想用Spring-Infinispan做类似的事情。使用Spring-Infinispan,我们不会编写任何应用程序代码,将对象放入/从缓存中获取,因为它由Spring注释处理(@Cacheable/@CachePut),如果有人能提供任何指针,我们将不胜感激

RemoteCache<Object, Object> cache =  jdgRemoteCacheManager.getCache(cacheName);
cache.put(keyName, object, 15, TimeUnit.MINUTES);

共有1个答案

邓鸿雪
2023-03-14

不幸的是,Spring Cache支持不提供此类方法(请参阅Javadocs)。所以似乎唯一的方法是使用Infinispan提供的Remote teCacheAPI。

也许您可以实现自己的@Cacheable注释并实现您需要的所有功能。但这真的是一个Spring问题...

 类似资料:
  • 我无法使用Ehcache设置二级缓存的过期时间 有什么方法可以配置到期时间吗?

  • 有时缓存代码中的单个对象会很有用,比如有些需要很大开销获取的数据或者一些结果集不怎么变化的数据库查询。你可以使用一些缓存软件将这些数据存放在内存中以便下次高速获取。如果你获得数据后把他们存起来,下次请求直接从缓存里面获取数据,在减少数据库负载的同时能极大提高性能。 许多流行的字节码缓存方案也能缓存定制化的数据,所以更有理由好好使用它们了。APCu、XCache 以及 WinCache 都提供了 A

  • set 设置普通类型的值 设置 set set(key: string, value: string expiryMode: string[ EX 秒 PX 分钟 ], time: number ) key: 键名称 value:存储的值 expiryMode:添加过期时间类型 EX 秒 PX 分钟 time:过期时间 // 存储一个key为gender,value 为 男人的数据,10秒后过期

  • 本文向大家介绍Java缓存Map设置过期时间实现解析,包括了Java缓存Map设置过期时间实现解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java缓存Map设置过期时间实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 最近项目需求需要一个类似于redis可以设置过期时间的K,V存储方式。项目前期暂时不引进redis

  • 问题内容: 寻找一个适用于Android(SDK 7+)类的简单开源非copyleft缓存。 目的主要是异步存储所获取的s(因此,我不需要将此功能包含在缓存类中)。 我为此目的使用了weakList,这自然是一个糟糕的解决方案,使用Guava缓存会更好一些,但仍然不够好。 最好是,缓存能够存储任何可序列化的对象,而不仅仅是a ,并且当对象添加到缓存中时,我可以轻松清除对象中使用的某些标记。 最好的

  • 我已经创建了一个Spring Boot应用程序,并在maven项目中实现了EhCache。我的EhCache的xml配置文件如下: 我已在参数timeToIdle秒中设置到期时间为300 但这对我不起作用。我没有使用任何配置bean来实现缓存。我使用@Cacheable注释来表示要在缓存中使用的方法。 为什么它没有被驱逐或清除?