答案 0 :(得分:1)
您可以将Redis用于此目的。
Redis是一个开源的内存数据结构存储,可用作缓存。它提供了一种为密钥添加到期时间的方法。到期时间后,密钥将自动从Redis无效/删除。
在你的专家中,给出以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在SpringBoot应用程序中,您需要定义以下属性:
spring.redis.host=
spring.redis.port=
您可以将到期时间设置为:
public void put(final T key, final T hashKey, final Object value, final long exiryInMilliseconds) {
hashOps.put(key, hashKey, value);
if (exiryInMilliseconds > 0) {
redisTemplate.expire(key, exiryInMilliseconds, TimeUnit.MILLISECONDS);
}
}
RedisTemplate&amp; HashOperations由Redis核心软件包提供。您可以像这样使用Spring注入它们,也可以通过自己创建实例来使用它们。
@Resource
private RedisTemplate<T, T> redisTemplate;
@Resource(name = "redisTemplate")
private <T, T, Object> hashOps;
在检索时,如果您这样做:
hashOps.get(key, hashKey);
如果过期时间过去/或密钥不存在,它将返回 null 。否则你会得到你的对象。
答案 1 :(得分:1)
您可以尝试ehcache3,它是专为此类用例而设计的!
请查看文档,尤其是the part about expiry。
然后,一起破解你的项目,有许多ehcache3 +春季启动示例there,there和there,还有一个额外的好处,你可以依赖{ {3}},并且不依赖于供应商。