Вы можете использовать expireAfterAccess
.
Он указывает, что каждая запись должна быть автоматически удалена из кеша по истечении фиксированного времени после создания записи
expireAfterAccess(long duration, TimeUnit unit)
Если вы хотите сделать запись недействительной в указанное время, вы можете создать запланированный поток, который выполняется в указанное c время и вызывает invalidateAll()