Share via


역할 내 캐시 역할 구성 설정(ServiceConfiguration.cscfg)

중요

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

이 항목에서는 ServiceConfiguration.cscfg 파일에서 사용 가능한 Microsoft Azure 캐시 설정에 대해 설명합니다. 이러한 설정은 대상 역할에 대한 캐싱 구성을 지정합니다. Visual Studio 역할 속성 대화 상자는 캐싱을 사용하도록 설정할 때 이러한 설정을 자동으로 구성합니다. 이 항목의 참조 정보는 캐싱을 활용하려는 비 Visual Studio 클라우드 서비스 배포에 가장 유용합니다.

ServiceConfiguration.cscfg

다음 예제에서는 캐싱이 구성된 기본 ServiceConfiguration.cscfg 파일을 보여 줍니다. 이 예제에는 defaultNamedCache1이라는 두 개의 명명된 캐시가 있습니다. 이를 뒤에 나오는 참조 섹션의 예로 사용할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
  <Role name="WebRole1">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

NamedCaches

Microsoft.WindowsAzure.Plugins.Caching.NamedCaches 설정은 모든 캐시 및 해당 구성 설정을 지정합니다. 이 정보는 JSON 구문을 사용하여 구성합니다. 구문의 큰따옴표는 &quot; 문자 엔터티 참조를 사용하여 이스케이프됩니다. 다음 NamedCaches 값은 위의 ServiceConfiguration.cscfg 파일에서 가져옵니다.

{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}

다음 예제에서는 위 예제와 설정이 같지만 출력의 서식이 지정되고 &quot; 기호가 큰따옴표로 바뀐 경우를 보여 줍니다. 이 예제는 구문의 이해를 돕기 위해 제공된 것으로 ServiceConfiguration.cscfg 파일에 사용해서는 안 됩니다.

{
    "caches": [
        {
            "name": "default",
            "policy": {
                "eviction": {"type": 0},
                "expiration": {"defaultTTL": 10, "isExpirable": true, "type": 1},
                "serverNotification": {"isEnabled": false}
            },
            "secondaries": 0
        },
        {
            "name": "NamedCache1",
            "policy": {
                "eviction": {"type": -1},
                "expiration": {"defaultTTL": 20, "isExpirable": true, "type": 2},
                "serverNotification": {"isEnabled": true}
            },
           "secondaries": 1
        }
    ]
}

명명된 모든 캐시는 최상위 캐시 필드 내에 정의 됩니다 . 각 명명된 캐시는 다음 세 필드에 의해 정의됩니다.

캐시 필드 설명

name

캐시 이름을 지정합니다.

추가

제거, 만료 및 알림 설정에 대한 정책입니다.

보조

고가용성을 위해 유지 관리할 백업 복사본 수를 정의합니다. 현재 이 값은 0 또는 1이어야 합니다. 값이 0이면 고가용성이 사용되지 않습니다.

정책 필드는 다음 속성으로 구성됩니다.

정책 필드 설명

제거

제거 유형을 지정하는 단일 필드 형식을 포함합니다. 가능한 값은 0(LRU) 및 -1(없음)입니다. 값이 0이면 오래 전에 사용한 항목이 제거됩니다. 값이 -1이면 제거할 수 없습니다.

expiration

만료 정책을 설명하는 세 개의 필드가 있습니다.

  1. defaultTTL: 만료되기 전에 항목이 캐시에 남아 있는 시간(분)입니다.

  2. isExpirable: 만료를 사용하도록 설정하는 값 true 과 만료를 사용하지 않도록 설정하는 값 false 입니다.

  3. 형식: 만료 유형입니다. 값이 0이면 만료되지 않습니다. 값이 1이면 절대 만료가 지정되고, 값이 2이면 슬라이딩 만료가 지정됩니다. 슬라이딩 만료가 설정된 경우 캐시의 항목이 사용될 때마다 만료 시간이 다시 설정됩니다.

중요

형식이 (사용 안 함)으로 0 설정되고, isExpirable이 설정되어야 fasle하며, defaultTTL을 .로 0설정해야 합니다.

serverNotification

이 캐시에 대해 알림을 사용할 수 있는지 여부를 지정하는 단일 필드 isEnabled를 포함합니다.

ClientDiagnosticLevel

캐싱에 대한 진단 컬렉션의 초기 수준을 지정합니다. 이 설정은 캐시의 클라이언트인 역할에 대한 진단 정보에만 적용되며, 클라이언트 관점에서의 캐시 사용에 대한 진단 정보를 제공합니다. 같은 위치에 배치된 토폴로지에서는 ClientDiagnosticLevel과 DiagnosticLevel을 같은 역할 구성에서 함께 사용할 수 있습니다.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />

DiagnosticLevel

캐싱에 대한 진단 컬렉션의 초기 수준을 지정합니다. 이 설정은 캐싱을 호스트하는 역할에 대한 진단 정보와 관련이 있습니다.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />

CacheSizePercentage

캐싱에 사용할 사용 가능한 메모리의 백분율입니다. 같은 위치에 배치된 토폴로지의 경우 백분율 기호가 없는 정수(예: 30)여야 합니다.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />

전용 토폴로지의 경우 빈 문자열이어야 합니다.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />

ConfigStoreConnectionString

캐싱에 사용할 Azure Storage 계정입니다. 이 저장소는 캐시 클러스터에 대한 구성 데이터를 유지하는 데 사용되며, 캐시 클러스터를 구성하는 모든 가상 컴퓨터에서 액세스할 수 있습니다. 다음 예제에서는 로컬 디버깅에 개발자 저장소를 사용합니다. 클라우드에 배포하기 전에 이를 실제 저장소 계정으로 변경해야 합니다.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />