만료 및 제거(Windows Server AppFabric 캐싱)
캐시된 개체는 Windows Server AppFabric의 메모리에 영구적으로 보존되지 않습니다. 캐시된 개체는 Remove 메서드를 통해 캐시에서 명시적으로 제거되는 것 외에, 캐시 클러스터에 의해 제거되거나 만료될 수도 있습니다.
만료
캐시 만료는 캐시 클러스터가 캐시된 개체를 캐시에서 자동으로 제거하도록 허용합니다. Put 또는 Add 메서드를 사용할 때 캐시된 개체가 캐시에 보존되는 시간을 결정하는 특정 캐시 개체에 대해 개체 시간 제한 값을 옵션으로 설정할 수 있습니다. 개체가 캐시될 때 개체 시간 제한 값을 제공하지 않으면 명명된 캐시의 클러스터 구성 설정에 지정된 값을 사용하여 캐시의 개체 수명이 결정됩니다.
캐시된 개체가 동시성의 이유로 잠겨 있으면 만료 기한을 지나더라도 캐시에서 제거되지 않습니다. 잠금이 해제될 경우에는 만료 기한을 지난 캐시된 개체는 캐시에서 즉시 제거됩니다.
잠금이 해제된 만료 개체가 즉각적으로 제거되지 않게 하기 위해, Unlock 메서드는 캐시된 개체의 만료 연장 또한 지원합니다. 지원되는 동시성 모델 및 메서드에 대한 자세한 내용은 동시성 모델(Windows Server AppFabric 캐싱) 및 동시성 메서드(Windows Server AppFabric 캐싱)를 참조하십시오.
로컬 캐시 무효화
로컬 캐시의 무효화 유형은 시간 제한 기반 무효화와 알림 기반 무효화 두 가지로 상호 보완적입니다. 프로그래밍 방식으로 로컬 캐시를 사용하도록 설정하는 예는 Windows Server AppFabric 로컬 캐시 사용을 참조하십시오. 응용 프로그램 구성 파일을 사용하여 로컬 캐시를 사용하도록 설정하는 예는 Windows Server AppFabric 로컬 캐시 사용(XML)을 참조하십시오.
팁
개체가 로컬 캐시에 저장된 후 무효화될 때까지 응용 프로그램은 해당 개체를 계속 사용합니다. 이때 해당 개체가 캐시 클러스터의 다른 클라이언트에 의해 업데이트되는지 여부는 상관없습니다. 이러한 이유로 자주 변경되지 않는 데이터에 대해 로컬 캐시를 사용하는 것이 가장 좋습니다.
시간 제한 기반 무효화
개체가 로컬 캐시로 다운로드되면 캐시 클라이언트 구성 설정에 지정된 개체 시간 제한 값에 이를 때까지 보존됩니다. 이 시간 제한 값에 이른 후에는 개체가 무효화되어 다음에 개체에 대한 요청을 받으면 캐시 클러스터로부터 개체를 새로 고칠 수 있습니다.
알림 기반 무효화
캐시 클라이언트가 로컬 캐시를 사용하도록 설정되어 있으면 캐시 알림을 사용하여 로컬로 캐시되는 개체를 자동으로 무효화할 수 있습니다. 해당 개체의 수명을 "필요에 맞게" 단축함으로써 응용 프로그램이 부실 데이터를 사용할 가능성을 줄일 수 있습니다.
캐시 알림을 사용할 경우 응용 프로그램은 사용 가능한 새 알림이 있는지 보기 위해 일정 간격으로 캐시 클러스터를 확인합니다. 이 간격을 폴링 간격이라고 하며, 기본적으로 매 300초로 설정되어 있습니다. 폴링 간격은 응용 프로그램 구성 설정에서 초 단위로 지정됩니다. 알림 기반 무효화를 함께 사용하더라도 시간 제한은 로컬 캐시의 항목에 그대로 적용된다는 점에 유의하십시오. 즉 알림 기반 무효화는 시간 제한 기반 무효화와 상호 보완적인 관계입니다.
경고
알림을 사용하는 응용 프로그램의 경우 명명된 캐시에서 이를 사용하도록 설정해야 합니다. New-Cache
또는 Set-CacheConfig
명령에 NotificationsEnabled
매개 변수를 사용합니다. 자세한 내용은 Windows PowerShell을 사용하여 Windows Server AppFabric 캐싱 기능 관리를 참조하십시오.
제거
각 캐시 호스트의 캐시에 사용 가능한 메모리 용량을 유지하기 위해 AppFabric은 LRU(오래 전에 사용한 항목) 제거를 지원합니다. 워터마크라고 하는 임계값이 클러스터의 모든 캐시 호스트 전반에 메모리를 균등하게 분배하는 데 사용됩니다.
캐시 서버에서 캐시 서비스의 메모리 사용량이 하위 워터마크 임계값을 초과하면 AppFabric은 이미 만료된 개체를 제거하기 시작합니다.
메모리 사용량이 상위 워터마크 임계값을 초과할 경우 개체는 만료 여부와 상관없이, 메모리 사용량이 하위 워터마크로 다시 낮아질 때까지 메모리에서 제거됩니다. 그 뒤로 캐시되는 개체는 최적의 메모리 분배 상태를 유지하기 위해 다른 호스트로 다시 라우트될 수 있습니다.
만료 및 제거 설정 지정
만료 및 제거 동작은 클러스터 구성 설정의 명명된 캐시 수준에서 구성됩니다. 이러한 캐시 수준 설정은 Windows PowerShell 기반 캐시 관리 도구를 사용하여 구성할 수 있습니다. 자세한 내용은 Windows PowerShell을 사용하여 Windows Server AppFabric 캐싱 기능 관리를 참조하십시오.
또한 다음 메서드를 사용하면 캐시에 지정된 기본 설정을 다시 정의할 수 있습니다.
Add 및 Put 메서드는 캐시에 추가하는 개체에 대해서만 만료 시간 제한 값을 지정할 수 있도록 하는 오버로드를 제공합니다.
PutAndUnlock 및 Unlock 메서드는 개체의 잠금이 해제된 후 만료를 연장할 수 있도록 하는 오버로드를 제공합니다.
ResetObjectTimeout 메서드는 명시적으로 개체의 수명을 연장하여 캐시의 만료 설정을 다시 정의할 수 있게 해 줍니다.
캐시 클러스터가 다시 시작될 경우에는 만료 또는 제거 설정과 상관없이 캐시의 모든 개체가 플러시됩니다. 데이터가 캐시에 없으면 응용 프로그램 코드는 데이터 원본에서 캐시를 다시 로드해야 합니다. 흔히 이것을 캐시 배제 프로그래밍 패턴이라고 합니다.
참고 항목
개념
Windows Server AppFabric 캐싱 실제 아키텍처 다이어그램
Windows Server AppFabric 캐싱 논리 아키텍처 다이어그램
캐시 클라이언트 및 로컬 캐시(Windows Server AppFabric 캐싱)
Windows Server AppFabric 로컬 캐시 사용
Windows Server AppFabric 로컬 캐시 사용(XML)
캐시 클라이언트 개발(Windows Server AppFabric 캐싱)
2011-12-05