java - 如何将咖啡因缓存设置为不过期
问题描述
我有一个简单的 Spring Boot 应用程序,我正在使用 Caffeine 进行缓存。我正在使用 Spring Boot 属性对其进行配置。我如何发送它以使其不会过期?
解决方案
您是否像他们在这里所做的那样将其设置为足够高的值。 https://github.com/ben-manes/caffeine/blob/e8ff6d3261e7f5666d2b486352cc04b2874d70ed/caffeine/src/main/java/com/github/benmanes/caffeine/cache/Async.java
您可以像这样实现自己的到期。
Caffeine
.newBuilder()
.expireAfter(new Expiry<String, String>() {
@Override
public long expireAfterCreate(@Nonnull String key, @Nonnull String value,
long currentTime) {
//return Duration.ofDays(1).toNanos();
return Long.MAX_VALUE;
}
@Override
public long expireAfterUpdate(@Nonnull String key, @Nonnull String value, long currentTime,
long currentDuration) {
return currentDuration;
}
@Override
public long expireAfterRead(@Nonnull String key, @Nonnull String value, long currentTime,
long currentDuration) {
return currentDuration;
}
}).build()
推荐阅读
- java - 如何使用 Java POI 在 Excel 中将多种日期格式转换为一种标准格式
- php - Bigcommerce 自定义私有应用程序开发店面内容注入蓝图和模板
- python - CSV 排序?“TypeError:人口必须是一个序列或集合”。如何修复它。
- c# - 需要创建httpwebrequest以在c#中发送api post
- python - webdriver.Firefox()的参数是什么及其意义
- ios - 在 ARKit 的 3D Facemesh 中获取双眼的 3D 坐标
- java - 如何在tableview javafx中显示对象数组
- sql - 如何颠倒oracle中选择语句的结果行?
- java - 父Activity无法拦截的Android Swipe Gesture
- javascript - 使用直接缓存访问时在地图中获取查询值