In-Role Cache クライアントの構成設定 (Web.config)
重要
Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。
このトピックでは、.NET Framework web.configまたはapp.config構成ファイルで In-Role Cache をサポートするための要件について説明します。 キャッシュ クライアントに対して使用可能な設定オプションについても説明しています。 このトピックで説明する設定は、キャッシュ クライアントでのみ必要です。キャッシュをホストするロールIn-Role必要はありません。
ヒント
In-Role キャッシュにNuGet パッケージを使用すると、パッケージによって構成ファイルが自動的に変更されます。 ただし、このトピックを使用して、NutGet を使用せずにキャッシュ クライアントIn-Role構成できます。 また、この情報を利用して、NuGet が挿入するキャッシュ クライアント設定をさらにカスタマイズすることができます。
以降のセクションでは、このトピックについて説明します。
<configSections>
<dataCacheClients>
<dataCacheClient>
<自動 検出>
<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 要素のセクションの一覧には、次の 2 つの名前付きセクション要素を追加する必要があります。
名前 | [説明] |
---|---|
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 要素には、1 つ以上の名前付き dataCacheClient 要素が 含まれています。 dataCacheClients 要素には属性がありません。 複数のキャッシュ クライアント構成セクションを設定することができるため、アプリケーションで異なる種類のキャッシュ データごとに、異なる設定を使用することができます。
dataCacheClient
各 dataCacheClients 要素には、1 つ以上の名前付き dataCacheClient 要素が 含まれています。 アプリケーション コードは、関連付けられている dataCacheClient セクションの名前を参照して、キャッシュ クライアントの設定を読み込みます。
dataCacheClients 要素には属性がありません。 ただし、子 dataCacheClient 要素には、いくつかの使用可能な属性があります。 これらの属性を、次の表に示します。
属性 | 説明 |
---|---|
名前 |
キャッシュクライアント構成の名前。 |
isCompressionEnabled |
圧縮を有効または無効にします。 指定できる値は |
useConnectionPool |
接続プールを有効または無効にします。 指定できる値は |
maxConnectionsToServer |
useConnectionPool が設定 |
次のセクションでは、各 dataCacheClient 要素内で使用できる子要素について説明します。
autoDiscover
autoDiscover 要素は、ターゲット キャッシュ クラスターに自動的に接続するキャッシュ クライアントを支援します。 このキャッシュ クライアントは、同じクラウド サービス デプロイ内のロールでホストする必要があります。
次の表では、 autoDiscover 要素で使用できる属性について説明します。
属性 | [説明] |
---|---|
isEnabled |
キャッシュをホストするロールへの |
identifier |
キャッシュをホストするのと同じクラウド サービスデプロイ内のロールIn-Role名前。 |
<autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
localCache
localCache 要素は、ローカル キャッシュの使用を制御します。 既定では、ローカル キャッシュは有効ではありません。 有効な場合、キャッシュ クラスターから取得したアイテムは、クライアント コンピューターのメモリにローカルに保存されます。 この場合、以降の get 要求のパフォーマンスは改善されますが、ローカルにキャッシュされているバージョンと実際のキャッシュ クラスター内のアイテムの間で、データに不整合が発生する可能性があります。 詳細については、「 Azure In-Role Cache のローカル キャッシュ」を参照してください。
次の表では、 localCache 要素で使用できる属性について説明します。
属性 | [説明] |
---|---|
isEnabled |
ローカル キャッシュを有効または無効にするには、 |
sync |
ローカル キャッシュを無効にする方法を決定します。 設定可能な値は |
objectCount |
ローカル キャッシュに格納されるオブジェクトの最大数です。 既定値は 10000 です。 |
ttlValue |
オブジェクトがローカル キャッシュに存在している秒数です。 既定では 300 秒です。 |
注意
通知は、Azure ロールでホストされているキャッシュでのみサポートされるIn-Role キャッシュ機能です。 通知を有効にするには、これらのキャッシュを構成する必要があります。
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
clientNotification
次の表では、 clientNotification 要素で使用できる属性について説明します。 この要素は、キャッシュ クライアントの通知動作を制御します。
属性 | [説明] |
---|---|
pollInterval |
ポーリングの試行間隔 (秒)。 ポーリングは、キャッシュ クラスターの通知を確認するために使用されます。 既定値は |
maxQueueLength |
ポーリングの試行間で対象のキャッシュ クライアントに対してキューに格納される通知の最大数。 既定値は |
<clientNotification pollInterval="60" maxQueueLength="10000"/>
serializationProperties
次の表では、 serializationProperties 要素で使用できる属性について説明します。 この要素では、キャッシュされた項目に対して内蔵またはカスタムのシリアル化を選択できます。 詳細については、「 Azure In-Role Cache でのシリアル化」を参照してください。
属性 | [説明] |
---|---|
serializer |
キャッシュされた項目のシリアル化の種類を決定します。 指定できる値は、 |
cacheDiagnostics
このセクションでは、In-Role Cache の診断設定の一部を構成します。 診断の詳細については、「 Azure In-Role キャッシュのトラブルシューティングと診断」を参照してください。
次のセクションでは、各 cacheDiagnostics 要素内で使用できる子要素について説明します。
crashDump
crashDump 要素は、このアプリケーション用に収集されたクラッシュ ダンプの種類を制御します。 In-Role キャッシュ クラッシュ ダンプは、主にキャッシュ クラスター マシンに関する問題を診断するように設計されています。 このため、クライアント構成ファイルにより、クラッシュ ダンプの生成がオフになります。 これを行うには、 dumpLevel 属性を > に設定します Off
。
クラッシュ ダンプが有効な場合、サイズが必ずクラッシュ ストレージ クォータと CacheSettings.xml で設定されているログ ストレージ クォータ (既定値は 1000 MB) の合計よりも大きくなるように、キャッシング ローカル ストアと診断ストアを調整する必要があります。
次の表では、 crashDump 要素で使用できる属性について説明します。
属性 | [説明] |
---|---|
dumpLevel |
使用できる値は、 |
dumpStorageQuotaInMB |
クラッシュ ダンプに割り当てるストレージの最大量。 |
scheduledTransferPeriodInMinutes |
クラッシュ ダンプから診断ストアへの転送間隔 (分)。 |
<crashDump dumpLevel="Off" dumpStorageQuotaInMB="100" scheduledTransferPeriodInMinutes="5" />