java 将hashmap数据存储在缓存中,1s后再读取
时间: 2024-02-18 07:00:38 浏览: 67
可以使用Java中的缓存框架来将HashMap存储在缓存中,并在1秒后再读取缓存数据。以下是一个使用Guava Cache(Google开发的缓存框架)的示例代码:
首先需要引入Guava Cache的依赖:
```xml
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
```
然后可以通过以下方式来创建一个缓存:
```java
LoadingCache<String, HashMap<String, String>> cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.SECONDS) //设置缓存过期时间为1秒
.build(new CacheLoader<String, HashMap<String, String>>() {
@Override
public HashMap<String, String> load(String key) throws Exception {
//缓存中不存在key对应的数据时会调用该方法获取数据
return new HashMap<>();
}
});
```
接下来可以将数据存储到缓存中:
```java
HashMap<String, String> data = new HashMap<>();
data.put("key1", "value1");
cache.put("data", data);
```
在1秒后可以从缓存中获取数据:
```java
Thread.sleep(1000); //等待1秒
HashMap<String, String> cachedData = cache.get("data");
System.out.println(cachedData.get("key1")); //输出"value1"
```
当然,还可以设置缓存的最大数量、缓存失效策略等等。具体的使用方式可以参考Guava Cache的官方文档。
阅读全文