Azure Managed Cache Service のローカル キャッシュ
重要
Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、自分に適した Azure Cache オファリングを参照してください。
ローカル キャッシュは、キャッシュ サービスへのネットワーク要求を減らすことでパフォーマンスを向上させるMicrosoft Azureキャッシュの機能です。 キャッシュは、オブジェクトをシリアル化された形式で分散メモリ内キャッシュに格納します。 アプリケーションがキャッシュのオブジェクトを要求すると、シリアル化されたオブジェクトがネットワーク経由で要求元のアプリケーションに送信されます。 アプリケーションは、オブジェクトをシリアル化解除して使用します。 オブジェクト取得の処理を速くするには、ローカル キャッシュを有効にします。
ローカル キャッシュの概要
ローカル キャッシュを有効にすると、キャッシュ クライアントはオブジェクトの参照をローカルに保存します。 このローカル参照は、クライアント アプリケーションのメモリでオブジェクトをアクティブに維持します。 アプリケーションがオブジェクトを要求すると、キャッシュ クライアントはオブジェクトがローカル キャッシュに存在するかどうかを確認します。 存在する場合は、キャッシュ サービスとやり取りすることなく、即座にオブジェクトの参照が返されます。 存在しない場合は、キャッシュ サービスからオブジェクトが取得されます。 その後、キャッシュ クライアントはオブジェクトをシリアル化解除し、この新しく取得されたオブジェクトへの参照をローカル キャッシュに格納します。 クライアント アプリケーションはこの同じオブジェクトを使用します。
ローカル キャッシュ内のオブジェクトの有効期間は、ローカル キャッシュに格納できるオブジェクトの最大数と無効化ポリシーによって決まります。 ローカル キャッシュの無効化には、タイムアウトベースの無効化と通知ベースの無効化の 2 種類があります。 詳細については、「Azure Managed Cache Service の有効期限と削除」を参照してください。
構成設定
ローカル キャッシュは、web.config ファイルまたは application configuration ファイルを使用して有効化および構成できます。 dataCacheClient セクションに localCache 要素を追加できます。 次の表に、 localCache 要素の属性を示します。
属性 | [説明] |
---|---|
isEnabled |
ローカル キャッシュを有効または無効にするには、 |
sync |
ローカル キャッシュを無効にする方法を決定します。 設定可能な値は |
objectCount |
ローカル キャッシュに格納されるオブジェクトの最大数です。 既定値は 10000 です。 |
ttlValue |
オブジェクトがローカル キャッシュに存在している秒数です。 既定では 300 秒です。 |
同期値を指定すると、ttlValue のTimeoutBased
制限に達するまで、オブジェクトがローカルにキャッシュされます。 値 NotificationBased
は、タイムアウト ベースのメカニズムに加えて通知を使用します。 無効に通知を使用するには、「キャッシュ通知の有効化」の手順に従って、最初にキャッシュに対 して通知を有効にする必要があります。 通知のポーリング間隔で、ローカル キャッシュのアイテムが変更されたかどうかを調べます。 有効にするには、通知の有効なポーリング間隔を ttlValue 設定よりも短くする必要があります。 追加要素 clientNotification を使用すると、 pollInterval 属性を秒数に設定することで、通知のポーリング間隔を構成できます。 既定では 300 秒です。
注意
通知はスタンダードとプレミアムのキャッシュ サービスで利用できますが、基本キャッシュ サービスでは利用できません。 詳細については、「Azure Managed Cache Service のキャッシュ オファリング」を参照してください。
例
次の例は、タイムアウトベースのローカル有効期限が 5 分 (300 秒) のローカル キャッシュを使用する dataCacheClient セクションを示しています。
<dataCacheClient name="default">
<!-- Other configuration settings for cache omitted -->
<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />
</dataCacheClient>
次の例は、1 分 (60 秒) ごとにポーリングすることで、通知を使用して追加の同期を提供するように変更された前の dataCacheClient セクションを示しています。
<dataCacheClient name="default">
<!-- Other configuration settings for cache omitted -->
<localCache isEnabled="true" sync="NotificationBased" objectCount="100000" ttlValue="300" />
<clientNotification pollInterval="60" />
</dataCacheClient>
ローカル キャッシュを使用するサンプルをダウンロードするには、 Cache API とパフォーマンス のサンプルを参照してください。