caffeine maximumSize方法作用
时间: 2023-10-25 08:08:07 浏览: 301
`maximumSize()` 方法是 Caffeine 缓存库中的一个方法,它的作用是设置缓存的最大条目数。
当缓存中的条目数达到最大值时,Caffeine 缓存库会按照一定策略自动淘汰一些旧的缓存数据,以便为新的缓存数据腾出空间。
这个方法可以接受一个 long 类型的参数,表示最大的缓存条目数。例如,如果我们希望设置缓存的最大条目数为 1000,可以这样写:
```
Caffeine.newBuilder()
.maximumSize(1000)
.build();
```
这样就会创建一个最大条目数为 1000 的缓存。需要注意的是,这里的“条目数”不仅仅指缓存中的键值对数目,还包括缓存中的条目数、权重等其他因素。因此,在使用这个方法时需要根据具体的应用场景进行调整。
相关问题
请用java编程,下面load方法只有参数key,还能再加别的参数吗 ? 代码如下: Caffeine.newBuilder() .maximumSize(maxSize) .expireAfterWrite(expireSeconds, TimeUnit.SECONDS) .build(new CacheLoader<Integer, Integer>() { @Nullable @Override public Integer load(@NonNull Integer key) throws Exception { logger.debug("load post rows from DB"); return discussPostMapper.selectDiscussPostRows(0,0,key); } });
是的,您可以在load方法中添加其他参数。只需在CacheLoader泛型参数中指定其他参数的类型,并在load方法中添加对应的参数即可。以下是示例代码:
```java
Caffeine.newBuilder()
.maximumSize(maxSize)
.expireAfterWrite(expireSeconds, TimeUnit.SECONDS)
.build(new CacheLoader<Integer, Integer, String>() {
@Nullable
@Override
public Integer load(@NonNull Integer key, String additionalParam) throws Exception {
logger.debug("load post rows from DB");
// 使用additionalParam进行操作
return discussPostMapper.selectDiscussPostRows(0, 0, key);
}
});
```
在上面的示例中,我们向CacheLoader泛型参数添加了一个String类型的additionalParam参数,并在load方法中使用它。您可以根据您的需求添加任意数量和类型的参数。
caffeineCache
Caffeine Cache是一个用于在项目开发中实现本地缓存的工具。它是基于Guava Cache设计思想的,因此如果之前使用过Guava Cache,使用Caffeine会更加容易上手。通过Caffeine类来配置Cache,可以设置缓存的参数,包括最大缓存大小、写入后过期时间等。例如,可以使用以下代码来构造一个缓存Cache实例:
Cache cache = Caffeine.newBuilder().maximumSize(1000).expireAfterWrite(6, TimeUnit.MINUTES).softValues().build();
这段代码中,使用Caffeine的newBuilder()方法创建一个新的Caffeine实例,并通过链式调用方法设置了缓存的最大大小为1000,写入后的过期时间为6分钟,并开启了软引用以支持内存敏感的缓存。最后使用build()方法构建出一个Cache实例。使用这个Cache实例,我们可以进行缓存的读写操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [浅入浅出Caffeine cache](https://blog.csdn.net/weixin_40413961/article/details/119064614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [缓存之王Caffeine Cache,性能比Guava更强,命中率更高!](https://blog.csdn.net/rlnLo2pNEfx9c/article/details/114984936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文