다음을 통해 공유


역할 내 캐시 클라이언트 구성 설정(Web.config)

중요

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

이 항목에서는 .NET Framework web.config 또는 app.config 구성 파일에서 In-Role Cache를 지원하기 위한 요구 사항에 대해 설명합니다. 또한 캐시 클라이언트에 대한 사용 가능한 구성 옵션도 설명합니다. 이 항목에 설명된 설정은 캐시 클라이언트에서만 필요합니다. In-Role Cache를 호스트하는 역할에는 필요하지 않습니다.

In-Role Cache에 NuGet 패키지를 사용하면 패키지가 구성 파일을 자동으로 수정합니다. 그러나 이 항목을 사용하여 NutGet을 사용하지 않고 In-Role Cache 클라이언트를 구성할 수 있습니다. 또한 이 정보를 사용하여 NuGet에서 삽입하는 캐시 클라이언트 설정을 추가로 사용자 지정할 수 있습니다.

이 항목에서 다루는 섹션은 다음과 같습니다.

  • <configSections>

  • <dataCacheClients>

    • <dataCacheClient>

      • <Autodiscover>

      • <localCache>

      • <clientNotification>

      • <serializationProperties>

  • <cacheDiagnostics>

    • <crashDump>

캐시 클라이언트 구성 예제

다음 예제에서는 In-Role Cache와 관련된 web.config 또는 app.config 파일의 섹션을 보여줍니다. 이 예제에서는 default 캐시 클라이언트가 CacheWorkerRole1 역할에서 호스팅하는 캐시에 액세스하며, 로컬 캐시가 사용됩니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />
  </configSections>
  <dataCacheClients>
    <dataCacheClient name="default">
      <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
      <localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
    </dataCacheClient>
  </dataCacheClients>
  <cacheDiagnostics>
    <crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" />
  </cacheDiagnostics>
</configuration>

configSections

다음 두 개의 명명된 섹션 요소를 configSections 요소의 섹션 목록에 추가해야 합니다.

Name Description

dataCacheClients

구성 파일의 dataCacheClients 요소를 정의합니다. 이 섹션에서는 모든 캐시 클라이언트 구성에 대한 설정을 지정합니다.

cacheDiagnostics

구성 파일의 cacheDiagnostics 요소를 정의합니다.

다음 예제에서는 이러한 섹션을 정의하는 방법을 보여 줍니다.

    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    <section name="cacheDiagnostics" type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" allowLocation="true" allowDefinition="Everywhere" />

dataCacheClients

dataCacheClients 요소에는 하나 이상의 명명된 dataCacheClient 요소가 포함됩니다. dataCacheClients 요소에는 특성이 없습니다. 여러 캐시 클라이언트 구성 섹션을 지정할 수 있으므로 응용 프로그램에서 여러 종류의 캐시된 데이터와 함께 다양한 설정을 사용할 수 있습니다.

dataCacheClient

dataCacheClients 요소에는 하나 이상의 명명된 dataCacheClient 요소가 포함됩니다. 애플리케이션 코드는 연결된 dataCacheClient 섹션의 이름을 참조하여 캐시 클라이언트에 대한 설정을 로드합니다.

dataCacheClients 요소에는 특성이 없습니다. 그러나 자식 dataCacheClient 요소에는 몇 가지 사용 가능한 특성이 있습니다. 다음 표에서는 이러한 특성에 대해 설명합니다.

attribute 설명

이름

캐시 클라이언트 구성의 이름입니다.

isCompressionEnabled

압축을 사용하거나 사용하지 않도록 설정합니다. 가능한 값은 true 또는 false입니다. 기본값은 false(사용 안 함)입니다.

useConnectionPool

연결 풀을 사용하거나 사용하지 않도록 설정합니다. 가능한 값은 true 또는 false입니다. 기본값은 true(사용)입니다.

maxConnectionsToServer

useConnectionPool이 설정된 true경우 이 특성은 이 캐시 클라이언트 구성에 대한 연결 풀의 연결 수를 지정합니다. useConnectionPool이 설정false되면 이 특성은 코드의 각 DataCacheFactory 개체에 사용할 연결 수를 지정합니다.

다음 섹션에서는 각 dataCacheClient 요소 내에서 사용 가능한 자식 요소에 대해 설명합니다.

autoDiscover

autoDiscover 요소는 대상 캐시 클러스터에 자동으로 연결하여 캐시 클라이언트를 지원합니다. 이 캐시 클러스터는 같은 클라우드 서비스 배포 내의 역할에 의해 호스팅되어야 합니다.

다음 표에서는 autoDiscover 요소에 사용할 수 있는 특성에 대해 설명합니다.

attribute 설명

Isenabled

truefalseIn-Role Cache를 호스트하는 역할에 대한 로컬 자동 연결을 사용하거나 사용하지 않도록 설정합니다.

identifier

In-Role Cache를 호스트하는 동일한 클라우드 서비스 배포에서 역할의 이름입니다.

<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />

localCache

localCache 요소는 로컬 캐시의 사용을 제어합니다. 기본적으로 로컬 캐시는 사용되지 않습니다. 사용하도록 설정하면 캐시 클라이언트에서 검색된 항목이 클라이언트 컴퓨터의 메모리에 로컬로 저장됩니다. 이 경우 이후의 get 요청 성능이 향상되지만 로컬로 캐시된 버전과 캐시 클라이언트에 있는 실제 항목 간에 데이터 불일치가 발생할 수 있습니다. 자세한 내용은 Azure In-Role Cache의 로컬 캐시를 참조하세요.

다음 표에서는 localCache 요소에 사용할 수 있는 특성에 대해 설명합니다.

attribute Description

Isenabled

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

동기화

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

objectCount

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

ttlValue

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

참고

알림은 Azure 역할에 호스트되는 캐시에서만 지원되는 In-Role 캐시 기능입니다. 이러한 캐시는 알림을 사용하도록 구성해야 합니다.

<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />

clientNotification

다음 표에서는 clientNotification 요소에 사용할 수 있는 특성에 대해 설명합니다. 이 요소는 캐시 클라이언트에 대한 알림 동작을 제어합니다.

attribute Description

pollInterval

폴링 시도 간격(초)입니다. 폴링은 캐시 클러스터에서 알림을 확인하는 데 사용됩니다. 기본값은 300초입니다.

maxQueueLength

폴링 시도 사이에 이 캐시 클라이언트에 대한 큐에 넣을 최대 알림 수입니다. 기본값은 알림 10000개입니다.

<clientNotification pollInterval="60" maxQueueLength="10000"/>

serializationProperties

다음 표에서는 serializationProperties 요소에 사용할 수 있는 특성에 대해 설명합니다. 이 요소에서는 캐시된 항목에 대한 직렬화 유형을 기본 제공 또는 사용자 지정 중에서 선택할 수 있습니다. 자세한 내용은 Azure In-Role Cache의 Serialization을 참조하세요.

attribute 설명

직렬 변환기

캐시된 항목의 직렬화 유형을 결정합니다. 가능한 값은 NetDataContractSerializer, BinaryFormatterCustomSerializer입니다. 기본값은 NetDataContractSerializer입니다.

cacheDiagnostics

이 섹션에서는 In-Role Cache에 대한 진단 설정 중 일부를 구성합니다. 진단에 대한 자세한 내용은 Azure In-Role 캐시 문제 해결 및 진단을 참조하세요.

다음 섹션에서는 각 cacheDiagnostics 요소 내에서 사용 가능한 자식 요소에 대해 설명합니다.

crashDump

crashDump 요소는 이 애플리케이션에 대해 수집된 크래시 덤프의 유형을 제어합니다. In-Role 캐시 크래시 덤프는 주로 캐시 클러스터 컴퓨터의 문제를 진단하도록 설계되었습니다. 따라서 클라이언트 구성 파일에서 크래시 덤프 생성을 해제해야 합니다. dumpLevel 특성을 Off.로 설정하여 이 작업을 수행할 수 있습니다.

크래시 덤프가 사용하도록 설정되면 캐싱 로컬 저장소와 진단 저장소를 ServiceDefinition.csdef에서 조정하여 그 크기가 CacheSettings.xml에 구성되어 있는 크래시 저장소 할당량과 로그 저장소 할당량의 합계보다 항상 커야 합니다(기본값은 1000MB).

다음 표에서는 crashDump 요소에 사용할 수 있는 특성을 설명합니다.

attribute Description

dumpLevel

가능한 값은 Off, MiniFull입니다.

dumpStorageQuotaInMB

크래시 덤프에 할당할 최대 저장소 용량입니다.

scheduledTransferPeriodInMinutes

진단 저장소로 크래시 덤프가 전송되는 간격(분)입니다.

<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />