学堂 学堂 学堂公众号手机端

在Java中,可以通过使用CacheBuilder类来创建本地缓存并设置过期时间

lewis 2年前 (2023-12-04) 阅读数 6 #技术

在Java中,可以通过使用CacheBuilder类来创建本地缓存并设置过期时间。以下是一个示例代码:

importcom.google.common.cache.Cache;
importcom.google.common.cache.CacheBuilder;

importjava.util.concurrent.TimeUnit;

publicclassLocalCacheExample{

publicstaticvoidmain(String[]args){
//创建一个本地缓存,设置最大缓存大小为100,过期时间为10分钟
Cache<String,String>cache=CacheBuilder.newBuilder()
.maximumSize(100)
.expireAfterWrite(10,TimeUnit.MINUTES)
.build();

//将键值对放入缓存中
cache.put("key1","value1");
cache.put("key2","value2");

//从缓存中获取值
Stringvalue1=cache.getIfPresent("key1");
Stringvalue2=cache.getIfPresent("key2");

System.out.println("value1:"+value1);
System.out.println("value2:"+value2);

//休眠11分钟,此时缓存中的数据应该已经过期
try{
Thread.sleep(11*60*1000);
}catch(InterruptedExceptione){
e.printStackTrace();
}

//再次尝试获取缓存中的值
value1=cache.getIfPresent("key1");
value2=cache.getIfPresent("key2");

System.out.println("value1afterexpiration:"+value1);
System.out.println("value2afterexpiration:"+value2);
}
}

在上面的代码中,使用CacheBuilder.newBuilder()来创建一个缓存构建器,然后通过调用maximumSize()方法设置缓存的最大大小,expireAfterWrite()方法设置缓存数据的过期时间。最后通过调用build()方法来构建缓存对象。

需要注意的是,以上示例中使用了Guava库中的CacheBuilder来创建本地缓存,需要在项目中引入相应的依赖。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门