2017-08-17 118 views

回答

1

您可以使用Redis来达到此目的。

Redis是一个可用作缓存的开源内存数据结构存储。它提供了一种将过期时间添加到密钥的方法。到期后,密钥将自动失效/从Redis中删除。

在你的Maven,请提供以下依赖性:

<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); 
     } 

    } 

Both RedisTemplate & HashOperations是p由Redis核心软件包提供。你可以像使用Spring一样注入它们,或者通过自己创建实例来使用它们。

@Resource 
private RedisTemplate<T, T> redisTemplate; 

@Resource(name = "redisTemplate") 
private <T, T, Object> hashOps; 

在检索的时候,如果你这样做:

hashOps.get(key, hashKey); 

它将返回如果到期时间已过/或键不存在。否则你会得到你的对象。

+0

谢谢,我会试试 – yongguangl

+0

@yongguangl它对你有用吗? – theLearner

+0

抱歉没及时回复,在此期间我忙于其他事项。当我添加依赖关系“spring-boot-starter-data-redis”时,出现了一个问题。 “redis jar”已下载,但无法正常工作。请查看我的更新。 – yongguangl