全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

java本地缓存设置过期时间怎么操作

问题描述:java本地缓存设置过期时间怎么操作

推荐答案 本回答由问问达人推荐

  在Java中,可以使用各种方法和库来实现本地缓存,并设置缓存项的过期时间。下面我将介绍一种常用的方法,使用Google Guava库来进行本地缓存和设置过期时间。

千锋教育

  首先,确保在项目的依赖中包含Guava库。可以通过在pom.xml(如果使用Maven)或build.gradle(如果使用Gradle)文件中添加以下行来实现:

Maven:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>

Gradle:
implementation 'com.google.guava:guava:30.1-jre'

接下来,让我们看看如何创建一个带有过期时间的本地缓存。
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

public class LocalCacheExample {
public static void main(String[] args) {
// 创建一个缓存
Cache<String, String> cache = CacheBuilder.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES) // 设置过期时间为10分钟
.build();

// 向缓存中放入数据
cache.put("key1", "value1");
cache.put("key2", "value2");

// 从缓存中获取数据
String value1 = cache.getIfPresent("key1");
String value2 = cache.getIfPresent("key2");

System.out.println(value1); // 输出: value1
System.out.println(value2); // 输出: value2

// 等待10分钟后,数据将会过期
try {
Thread.sleep(10 * 60 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

// 再次获取数据
value1 = cache.getIfPresent("key1");
value2 = cache.getIfPresent("key2");

System.out.println(value1); // 输出: null(数据已过期)
System.out.println(value2); // 输出: null(数据已过期)
}
}

   在上面的示例中,通过使用CacheBuilder类和expireAfterWrite方法,我们创建了一个具有10分钟过期时间的缓存。我们使用put方法将数据放入缓存中,并使用getIfPresent方法从缓存中获取数据。当等待10分钟后,再次尝试获取数据时,我们将得到一个null值,表示数据已过期。

  使用Guava库的好处是,它提供了更多的配置选项,例如基于大小或权重的回收策略,异步加载缓存项等。你还可以为缓存添加监听器以处理缓存项的过期事件或移除事件。

  总结起来,通过使用Guava库,你可以轻松地创建本地缓存,并设置缓存项的过期时间,以满足不同的应用需求。

查看其它两个剩余回答
在线咨询 免费试学 教程领取