다음을 통해 공유


Azure 역할 내 캐시의 로컬 캐시

중요

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

로컬 캐시는 원격 캐시에 대한 네트워크 요청을 줄여 성능을 향상시키는 Microsoft Azure Cache의 기능입니다. Microsoft Azure Cache는 여러 서버에 분산된 메모리 내 캐시에 직렬화된 형태로 개체를 저장합니다. 응용 프로그램이 캐시에서 개체를 요청하면 해당 개체가 저장된 서버가 식별됩니다. 그러면 해당 서버는 네트워크를 통해 직렬화된 개체를 요청 응용 프로그램에 전송합니다. 그러면 응용 프로그램은 이 개체를 역직렬화합니다. 개체를 가져오는 프로세스의 속도를 높이려면 로컬 캐시를 사용하도록 설정합니다.

로컬 캐시 개요

로컬 캐시를 사용하도록 설정하면 캐시 클라이언트는 개체에 대한 참조를 로컬로 저장합니다. 이 로컬 참조는 클라이언트 응용 프로그램의 메모리에서 개체를 활성 상태로 유지합니다. 응용 프로그램이 개체를 요청하면 캐시 클라이언트는 로컬 캐시에 개체가 있는지 확인합니다. 개체가 있으면 서버 연결 없이 개체에 대한 참조가 즉시 반환됩니다. 개체가 없으면 서버에서 개체가 검색됩니다. 그러면 캐시 클라이언트가 개체를 역직렬화하고 새로 검색한 이 개체에 대한 참조를 로컬 캐시에 저장합니다. 클라이언트 응용 프로그램은 동일한 이 개체를 사용합니다.

로컬 캐시에서 개체의 수명은 로컬 캐시의 최대 개체 수와 무효화 정책에 따라 좌우됩니다. 로컬 캐시에 대한 무효화에는 시간 제한 기반 무효화와 알림 기반 무효화의 두 가지 유형이 있습니다. 자세한 내용은 Azure In-Role Cache의 만료 및 제거를 참조하세요.

구성 설정

로컬 캐시는 web.config 또는 응용 프로그램 구성 파일을 사용하여 활성화 및 구성할 수 있습니다. dataCacheClient 섹션에 localCache 요소를 추가할 수 있습니다. 다음 표에서는 localCache 요소의 특성을 나열합니다.

attribute 설명

Isenabled

로컬 캐시를 사용하거나 사용하지 않도록 설정하려면 true 또는 false로 설정합니다.

동기화

로컬 캐시가 무효화되는 방법을 결정합니다. 가능한 값은 TimeoutBasedNotificationBased입니다.

objectCount

로컬 캐시에 저장할 최대 개체 수입니다. 기본값은 10000입니다.

ttlValue

개체가 로컬 캐시에 저장되는 시간(초)입니다. 기본값은 300초입니다.

ttlValue 제한에 도달할 때까지 개체를 로컬로 캐시하는 동기화TimeoutBased 입니다. NotificationBased 값은 시간 제한 기반 메커니즘 외에 알림을 사용합니다. 무효화 알림을 사용하려면 캐시에 대해 알림을 사용하도록 설정합니다. 알림의 폴링 간격을 통해 로컬 캐시의 항목이 변경되어 있는지 확인합니다. 알림에 대한 유효 폴링 간격은 유효하려면 ttlValue 설정보다 짧아야 합니다. 더하기 요소인 clientNotification을 사용하여 pollInterval 특성을 초 수로 설정하여 알림에 대한 폴링 간격을 구성할 수 있습니다. 기본값은 300초입니다.

참고

알림은 Azure 역할에 호스트되는 캐시에서만 지원되는 In-Role 캐시 기능입니다.

다음 예제에서는 시간 제한 기반 로컬 만료가 5분(300초)인 로컬 캐시를 사용하는 dataCacheClient 섹션을 보여 줍니다.

    <dataCacheClient name="default">
      <!-- Other configuration settings for cache -->
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>

다음 예제에서는 1분(60초)마다 폴링하여 추가 동기화를 제공하기 위해 알림을 사용하도록 변경된 이전 dataCacheClient 섹션을 보여 줍니다. 알림은 역할 기반 In-Role 캐시에서만 지원됩니다.

    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="WebRole1" />
      <localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
      <clientNotification pollInterval="60" />
    </dataCacheClient>

로컬 캐시를 사용하는 샘플을 다운로드하려면 캐싱 API 및 성능 샘플을 참조하세요.

참고 항목

개념

Azure 캐시의 역할 내 캐시 기능