올바르게 정리되지 않은 CacheItem
에 자신을 발견했습니다.'Priority'와 'AbsoluteExpiration'이 함께 작동하는 방식은 무엇입니까?
AbsolutExpiration
이의 "유지 (keep-alive)"을 설정하는 데 사용됩니다 : MSDN보고 UTC 기반의 계산을 사용하여 나 자신을 수정하는 동안, 나는이 혼란 정보를 발견 CacheItem
, Priority.NotRemovable
은 CacheItem
이 영원히 존재하도록 강제하는 데 사용됩니다. 어떤 속성이 다른 속성을 재정의하는지에 대한 알림이 없습니다.
아래 코드는 컴파일되고 SQL 프로필러는 데이터베이스가 한 번만 쿼리되고 다른 모든 요청은 캐시에서 가져온 것으로 확인합니다.
CacheItemPolicy _cachePolicy = new CacheItemPolicy()
{
AbsoluteExpiration = new DateTimeOffset(DateTime.Now.AddHours(6)),
Priority = CacheItemPriority.NotRemovable
};
는이 코드 힘 캐시 항목이 영원히 머물하지만 설정에 대한 MSDN의 노트에 맞춰 창조 12 시간 후에 삭제한다고 가정합니다.
그런 다음 "을 캐시 구현은 캐시에서 항목을 축출하고 캐시 항목의 수를 관리하는 방법을 제공하는 경우에만 캐시 항목에 대한 NotRemovable 우선 순위를 설정해야 캐시 구현" 다른면, 왜 두 속성이 함께 작동합니까? 구현은 일종의 "제거 불가능한"기능을 제공합니까?
불분명 한 문서 덕분에 나 자신이 궁금해했다. 필자의 경우 캐시 된 항목이 만료되기 전에 캐시가 과도한로드를 정리하는 것을 막기 위해 만료되지 않으면 캐시 된 항목이 제거되지 않도록하고 싶습니다. –