In-Role Cache ロール構成設定 (ServiceConfiguration.cscfg)

重要

Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。

このトピックでは、ServiceConfiguration.cscfg ファイルで使用できるMicrosoft Azureキャッシュ設定について説明します。 これらの設定では、ターゲット ロールでのキャッシュの構成を指定します。 Visual Studioの [ロールのプロパティ] ダイアログでは、キャッシュを有効にすると、これらの設定が自動的に構成されます。 このトピックのリファレンス情報は、キャッシュを利用するVisual Studio以外のクラウド サービスデプロイに最も役立ちます。

ServiceConfiguration.cscfg

次の例は、キャッシュが構成されている基本的な ServiceConfiguration.cscfg ファイルを示しています。 この例には、defaultNamedCache1 の 2 つの名前付きキャッシュがあります。 これは、以下の参照セクションの例として使用できます。

<?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
        }
    ]
}

すべての名前付きキャッシュは、最上位のキャッシュ フィールド内 定義されます。 各名前付きキャッシュは次の 3 つのフィールドで定義されます。

キャッシュのフィールド 説明

name

キャッシュの名前を指定します。

追加する

削除、有効期限、通知設定のポリシー。

セカンダリ

高可用性のために維持するバックアップ コピーの数を定義します。 現時点で、この値は 0 または 1 にする必要があります。 0 の値は高可用性を無効にします。

ポリシー フィールドは、次のプロパティで構成されます。

ポリシー フィールド [説明]

立ち退き

削除の 種類を指定する 1 つのフィールド type が含まれます。 指定できる値は 0 (LRU) と -1 (なし) です。 0 の値により、最も長く使われていないアイテムの削除が可能になります。 -1 の値は削除を無効にします。

expiration

有効期限ポリシーを説明する 3 つのフィールドを格納します。

  1. defaultTTL: 有効期限が切れる前に項目がキャッシュに残る時間 (分)。

  2. isExpirable: 有効期限を true 有効にし、値の false 有効期限を無効にします。

  3. type: 有効期限の種類。 0 の値は有効期限を無効にします。 1 の値は絶対有効期限を指定します。 2 の値はスライディング有効期限を指定します。 スライディング有効期限では、キャッシュ内のアイテムにアクセスするたびに、有効期限がリセットされます。

重要

が (無効) に0設定され、isExpirablefasledefaultTTL がに設定0されている必要があります。

serverNotification

このキャッシュに対して通知を有効にするかどうかを指定する 1 つのフィールド 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 ストレージ アカウント。 このストレージは、キャッシュ クラスターに関する構成データを保持するために使用し、キャッシュ クラスターを構成するすべての仮想マシンからアクセスできます。 次の例では、ローカル デバッグ用に開発者ストレージを使用しています。 クラウドにデプロイする前に、これを実際のストレージ アカウントに変更する必要があります。

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