Azure 관리 캐시 서비스의 만료 및 제거

중요

Microsoft는 모든 새 개발에서 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품 선택에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.

Microsoft Azure Cache는 캐시된 개체를 메모리에 영구적으로 유지하지 않습니다. Remove 메서드를 사용하여 캐시에서 명시적으로 제거되는 것 외에도 캐시된 개체는 캐시에 의해 만료되거나 제거될 수 있습니다.

만료

캐시 만료는 캐시가 캐시된 개체를 캐시에서 자동으로 제거하도록 허용합니다. Put 또는 Add 메서드를 사용하는 경우 캐시된 개체가 캐시에 상주하는 시간을 결정하는 특정 캐시 개체에 대해 개체 시간 제한 값을 옵션으로 설정할 수 있습니다. 개체 시간 초과 값이 개체가 캐시되는 시점에 제공되지 않으면 캐시된 개체에서 기본 만료 시간을 사용합니다. Managed Cache Service 기본 시간은 10분입니다.

만료 정책시간(분) 설정과 함께 캐시된 항목이 만료되는 시기를 결정하며, 이러한 동작은 관리 포털에 있는 캐시 구성 탭의 명명된 캐시 수준에서 구성됩니다.

Expiry Policy for Windows Azure Cache Service

만료 정책에는 절대, 슬라이딩, 없음의 세 가지 유형이 있습니다.

만료 정책 Description

Never

만료가 사용하지 않도록 설정됩니다. 항목이 제거될 때까지 캐시에 유지됩니다. 안 함을 지정하면 시간(분)0으로 설정됩니다.

Absolute

항목이 캐시에 추가되면 시간(분)에 지정된 만료 시간이 시작됩니다. 시간(분) 단위로 지정된 기간이 경과하면 항목이 만료됩니다.

슬라이딩

캐시에서 항목에 액세스할 때마다 시간(분)에 지정된 만료 시간이 재설정됩니다. 항목에 마지막으로 액세스한 후 시간(분)으로 지정된 기간이 경과해야 항목이 만료됩니다. 이로 인해 자주 사용되는 항목이 캐시에 더 오래 유지됩니다.

절대는 기본 만료 정책이며 시간(분)에 대한 기본 설정은 10분입니다. 만료 정책은 명명된 캐시의 각 항목에 대해 고정되지만 시간 제한 매개 변수를 사용하는 추가배치 오버로드를 사용하여 각 항목에 대해 시간(분)을 사용자 지정할 수 있습니다.

참고

로컬 캐시와 함께 사용할 경우 슬라이딩 만료의 동작에 주의해야 합니다. 로컬 캐시에서 항목을 읽을 경우 캐시에 있는 개체에 액세스하지 않습니다. 따라서 항목을 로컬에서 읽는 경우에도 항목이 서버에서 만료될 수 있습니다.

캐시된 개체가 동시성의 이유로 잠겨 있으면 만료 기한을 지나더라도 캐시에서 제거되지 않습니다. 잠금이 해제될 경우에는 만료 기한을 지난 캐시된 개체는 캐시에서 즉시 제거됩니다.

잠금이 해제된 만료 개체가 즉시 제거되지 않도록 하기 위해 Unlock 메서드는 캐시된 개체의 만료 연장도 지원합니다.

관리 포털에 있는 캐시의 모니터 탭에서 제거 및 만료 메트릭을 포함하여 캐시의 상태 및 성능을 확인할 수 있습니다. 자세한 내용은 모니터 탭을 사용하여 캐시 서비스 모니터링을 참조하세요.

로컬 캐시 무효화

로컬 캐시에는 시간 제한 기반 무효화 및 알림 기반 무효화라는 두 가지 보완적인 형식의 무효화가 있습니다.

개체가 로컬 캐시에 저장된 후 무효화될 때까지 응용 프로그램은 해당 개체를 사용할 수 있습니다. 이때 해당 개체가 다른 클라이언트에서 업데이트되는지는 상관없습니다. 이러한 이유로 자주 변경하지 않는 데이터에 대해 로컬 캐시를 사용하도록 설정하는 것이 가장 좋습니다.

시간 제한 기반 무효화

개체가 로컬 캐시로 다운로드되면 캐시 클라이언트 구성 설정에 지정된 개체 시간 제한 값에 이를 때까지 보존됩니다. 이 시간 제한 값에 도달한 후에는 개체가 무효화되어 다음에 개체 관련 요청을 받으면 캐시에서 개체를 새로 고칠 수 있습니다.

알림 기반 무효화

캐시 클라이언트가 로컬 캐시를 사용하도록 설정되어 있으면 캐시 알림을 사용하여 로컬로 캐시된 개체를 자동으로 무효화할 수 있습니다. 해당 개체의 수명을 "필요에 맞게" 단축함으로써 응용 프로그램이 부실 데이터를 사용할 가능성을 줄일 수 있습니다.

참고

알림은 표준 및 프리미엄 캐시 기능에서 사용할 수 있으며 기본 캐시 기능에서는 사용할 수 없습니다. 자세한 내용은 Azure Managed Cache Service 대한 캐시 제품을 참조하세요.

캐시 알림을 사용하면 응용 프로그램은 일정한 간격으로 캐시를 검사하여 새 알림을 사용할 수 있는지 확인합니다. 이 간격을 폴링 간격이라고 하며, 기본적으로 매 300초로 설정되어 있습니다. 폴링 간격은 응용 프로그램 구성 설정에서 초 단위로 지정됩니다. 알림 기반 무효화를 함께 사용하더라도 시간 제한은 로컬 캐시의 항목에 그대로 적용된다는 점에 유의하십시오. 즉, 알림 기반 무효화는 시간 제한 기반 무효화와 상호 보완적입니다.

자세한 내용과 예제는 Azure Managed Cache Service 대한 로컬 캐시를 참조하세요.

제거

캐시에 사용 가능한 메모리 용량을 유지하기 위해 LRU(오래 전에 사용한 항목) 제거가 지원됩니다. 메모리 사용이 제공되는 캐시 크기에 근접하면 개체의 만료 여부에 관계없이 메모리 압력이 줄어들 때까지 개체가 메모리에서 제거됩니다.

경고

제거를 사용하지 않도록 설정하면 제한의 위험이 있습니다. 이 경우 메모리가 임계값을 초과하지만 메모리 부족을 완화할 수 있는 기능이 없습니다. 이 상태의 캐시에 항목을 추가하려고 하는 클라이언트는 문제가 해결될 때까지 예외를 수신합니다.

관리 포털에 있는 캐시의 모니터 탭에서 제거 및 만료 메트릭을 포함하여 캐시의 상태 및 성능을 확인할 수 있습니다. 자세한 내용은 모니터 탭을 사용하여 캐시 서비스 모니터링을 참조하세요.

제거에는 사용 및 사용 안 함의 두 가지 설정 있습니다. 제거는 관리 포털에 있는 캐시 구성 탭의 명명된 캐시 수준에서 구성되며 기본 설정은 사용입니다.

Eviction Policy for Windows Azure Cache Service

코드를 사용하여 만료 및 제거 설정 지정

다음 메서드를 사용하면 캐시에 지정된 기본 설정을 다시 정의할 수 있습니다.

  • Add and Put 메서드는 캐시 추가하는 개체에 대해서만 만료 시간 제한 값을 지정할 수 있는 오버로드를 제공합니다.

  • PutAndUnlockUnlock 메서드는 잠금 해제 후 개체의 만료를 확장할 수 있는 오버로드를 제공합니다.

  • ResetObjectTimeout 메서드를 사용하면 개체의 수명을 명시적으로 연장하여 캐시의 만료 설정을 재정의할 수 있습니다.

참고

만료 또는 제거 설정에 관계없이 캐시 서비스가 예기치 않게 종료되거나 중단된 동안에는 캐시 데이터가 보존되지 않습니다. 데이터가 캐시에 없으면 응용 프로그램 코드를 통해 데이터 원본에서 캐시를 다시 로드해야 합니다. 이를 흔히 캐시 배제 프로그래밍 패턴이라고 합니다.

참고 항목

기타 리소스

Azure 관리 캐시 서비스 기능