CacheBuilder.newBuilder()
时间: 2023-12-07 20:37:52 浏览: 94
`CacheBuilder.newBuilder()`是Guava Cache的一个构建器,用于构建一个新的缓存实例。通过该构建器,可以设置缓存的各种参数,例如缓存的初始容量、最大容量、过期时间等等。以下是一个使用`CacheBuilder.newBuilder()`构建缓存的例子:
```java
Cache<String, Object> cache = CacheBuilder.newBuilder()
.initialCapacity(5) // 设置缓存的初始容量为5
.maximumSize(10) // 设置缓存的最大容量为10
.expireAfterWrite(10, TimeUnit.MINUTES) // 设置缓存项在写入后的过期时间为10分钟
.build(); // 构建缓存实例
cache.put("154", "djawbdawd"); // 向缓存中添加一个键值对
```
在上面的例子中,我们使用`CacheBuilder.newBuilder()`构建了一个缓存实例,并设置了缓存的初始容量为5,最大容量为10,缓存项在写入后的过期时间为10分钟。然后,我们向缓存中添加了一个键值对。需要注意的是,这里的键和值都是字符串类型,但实际上,Guava Cache支持任意类型的键值对。
相关问题
CacheBuilder.newBuilder
CacheBuilder.newBuilder是Google Guava库中的一个方法,用于创建一个新的CacheBuilder实例。CacheBuilder是构建缓存的构建器,它提供了许多配置选项来自定义缓存的行为。使用CacheBuilder.newBuilder()方法可以创建一个默认的CacheBuilder实例,然后可以使用该实例上的其他方法来进行进一步的配置和构建。
例如,可以使用maximumSize方法设置缓存的最大容量,可以使用expireAfterAccess或expireAfterWrite方法设置缓存项的过期时间,可以使用removalListener方法设置缓存项被移除时的回调函数等等。
在引用中的代码示例中,CacheBuilder.newBuilder()方法被用于创建一个CacheBuilder实例,并在构建时通过链式调用方法设置了maximumSize选项。
注意,引用中提到的asMap视图上的方法不会自动加载缓存项,因此在需要自动加载缓存项的情况下,应该优先使用Cache.get(K, Callable<V>)方法,而不是Cache.asMap().putIfAbsent方法。
引用提到了Cache和LoadingCache接口,Cache是缓存的基本接口,LoadingCache是继承自Cache接口的接口,用于支持自动加载缓存项的缓存。在使用CacheBuilder.newBuilder()方法创建CacheBuilder实例时,可以通过build方法传入一个CacheLoader实例来实现自动加载缓存项的功能。
总之,CacheBuilder.newBuilder()方法是Google Guava库中用于创建CacheBuilder实例的方法,通过该实例可以进行缓存的配置和构建。
CacheBuilder.newBuilder().expireAfterAccess
这是 Guava 缓存库中的一个方法调用,用于创建一个新的缓存构建器对象。`expireAfterAccess` 方法用于设置缓存条目在最后一次访问之后一段时间内没有被访问时将被自动移除。可以通过传递一个持续时间和时间单位来指定该时间段的长度。例如,以下代码将创建一个缓存构建器,其中缓存条目将在最后一次访问后的10分钟内没有被访问时被移除:
```
CacheBuilder.newBuilder()
.expireAfterAccess(10, TimeUnit.MINUTES)
...
```
这样设置可以帮助减少缓存中过期或不再需要的数据的数量,从而避免占用过多的内存空间。
阅读全文