ehache에 대한 문서는 다음과 같이 말합니다.
timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires
timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. The maximum time between creation time and when an element expires.
이해 했어요 timeToIdleSeconds를 합니다.
그러나 캐시 항목을 만들고 처음 액세스 한 후에는 timeToLiveSeconds 가 더 이상 적용되지 않는다는 의미입니까?
답변
timeToIdleSeconds
보다 짧은 기간에 요청되는 한 캐시 된 개체를 보관할 수 있습니다 timeToIdleSeconds
.timeToLiveSeconds
캐시 된 객체는 요청 된 횟수 또는시기에 관계없이 몇 초 후에 무효화됩니다.
라고합시다 timeToIdleSeconds = 3
. 그런 다음 4 초 동안 요청하지 않으면 개체가 무효화됩니다.
이면 timeToLiveSeconds = 90
짧은 수명의 90 초 동안 몇 밀리 초 동안 요청 된 경우에도 90 초 후에 객체가 캐시에서 제거됩니다.
답변
둘 다 설정하면 expirationTime
이됩니다 Math.min(ttlExpiry, ttiExpiry)
.
ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle
답변
로부터 기존 1.1 문서 (현재 문서 AFAIK 이상 찾아보기로 쉽고 더 많은 정보를 구글 캐시에서 사용할 수) :
timeToIdleSeconds
이것은 선택적 속성입니다.
올바른 값은 0과 Integer.MAX_VALUE 사이의 정수입니다.
요소가 마지막으로 사용 된 이후 유지되어야하는 시간 (초)입니다. 사용됨은 삽입 또는 액세스됨을 의미합니다.
0은 요소가 유휴 시간을 확인하지 않는 특별한 의미를 가지고 있습니다. 즉, 영원히 유휴 상태가됩니다.
기본값은 0입니다.
timeToLiveSeconds
이것은 선택적 속성입니다.
올바른 값은 0과 Integer.MAX_VALUE 사이의 정수입니다.
요소가 생성 된 이후 유지되어야하는 시간 (초)입니다. 생성됨은 Cache.put 메서드를 사용하여 캐시에 삽입됨을 의미합니다.
0은 특별한 의미를 가지고 있습니다. 즉, 수명을 위해 요소를 확인하지 않는 것입니다. 즉, 영원히 살 것입니다.
기본값은 0입니다.