Кофеин Кеш не загружается из памяти
Мы используем кофеин в целях кэширования. Настройка кажется довольно простой. Настраиваем кеш следующим образом
LoadingCache<Triple<Long, Long, Long>, Result> cache = Caffeine.newBuilder()
.maximumSize(1000)
.refreshAfterWrite(240, TimeUnit.MINUTES)
.build(new CacheDataLoader());
public class CacheDataLoader implements CacheLoader<Triple<Long, Long, Long>, Result> {
@Override
public Result load(@Nonnull Triple<Long, Long, Long> id) throws Exception
{
-------
}
@Override
public Result reload(@Nonnull Triple<Long, Long, Long> id, @Nonnull Result oldValue) throws Exception {
---------
}
}
Когда мы делаем cache.get(id)
всегда вызывает load
функция в CacheDataLoader
который будет загружаться из базы данных. В результате данные никогда не извлекаются из памяти. На основании документации, load
должен срабатывать только в том случае, если запрошенный ключ отсутствует в памяти. Это не правильно? Есть ли что-то не так с тем, как мы настраиваем кеш.
Любое понимание приветствуется.
Благодарю.