セールス: 1-800-867-1380

Azure Cache 用の In-Role Cache について

更新日: 2014年9月

noteメモ
アプリケーションに対して適切な Azure Cache サービスを選択するためのガイダンスについては、「どの Azure Cache を利用すればよいですか。」を参照してください。

インロール キャッシュ では、 ロールで キャッシュ サービスをホストする機能をサポートしています。このモデルでは、キャッシュはクラウド サービスの一部です。クラウド サービス内の 1 つのロールが インロール キャッシュ をホストするために選択されます。そのロールの実行中のインスタンスはメモリ リソースを結合し、キャッシュ クラスターを形成します。このプライベート キャッシュ クラスターは、同じ配置内のロールでのみ使用できます。インロール キャッシュ のデプロイ トポロジには主に次の 2 つがあります。併置と専用。併置型ロールは、他の非キャッシュ アプリケーション コードとサービスもホストします。専用ロールは キャッシュ にのみ使用されるワーカー ロールです。以下のトピックでは、これらの キャッシュ トポロジについて詳しく説明します。

ロール ベースの インロール キャッシュ の詳細なチュートリアルについては、「Azure のキャッシュを使用する方法」を参照してください。ダウンロード可能なサンプルについては、「In-Role Cache のサンプル (Azure Cache)」を参照してください。

このセクションでは、ロール ベースの インロール キャッシュ に関連する 3 つの主要な概念について説明します。

  1. キャッシュ クラスター

  2. 名前付きキャッシュ

  3. キャッシュ クライアント

Azure のロールには、1 つまたは複数のインスタンスがあります。各インスタンスは、指定されたロールをホストするよう構成された仮想マシンです。インロール キャッシュ が有効になっているロールが複数のインスタンスで稼働すると、キャッシュ クラスターが形成されます。キャッシュ クラスターは、クラスター内のすべてのコンピューターのメモリを組み合わせて使用する、分散キャッシュ サービスです。アプリケーションは、どのコンピューターにアイテムが格納されているかを知らなくても、キャッシュ クラスターとの間でアイテムを追加および取得できます。高可用性が有効になっている場合、アイテムのバックアップ コピーが別の仮想マシン インスタンスに自動的に格納されます。

noteメモ
各クラウド サービスでサポートされるキャッシュ クラスターは 1 つのみです。各ロールに異なるストレージ アカウントを指定して、クラウド サービスで複数のキャッシュ クラスターを設定することはできます。ただし、この構成はサポートされません。

インロール キャッシュ を ロールに対して有効にするときに、キャッシュ用のメモリ量を指定します。併置型シナリオでは、ロールをホストする仮想マシンで使用できるメモリの割合を選択します。専用シナリオでは、仮想マシン上の空きメモリがすべてキャッシュに使用されます。ただし、オペレーティング システムのメモリ要件により、空きメモリは常に仮想マシン上の合計物理メモリよりも小さくなります。

このため、キャッシュ メモリの合計量は、キャッシュ 用に確保されたロールのメモリにロール数を乗算したものになります。そのロールの実行中のインスタンス数を増減することで、合計 キャッシュ メモリを効果的に増減できます。

Warning警告
インロール キャッシュ をホストしているロールの実行中インスタンスを縮小する場合は、インスタンスの数を一度に最大 3 つ減らします。その変更が完了した後、追加の最大 3 つの実行中インスタンスを削除できます。実行中インスタンスが必要な数になるまで、手順を繰り返します。3 つを超える数のインスタンスを同時に縮小すると、キャッシュ クラスターが不安定になります。

各キャッシュ クラスターでは、クラスターのランタイム状態に関する共有情報を ストレージで維持します。デプロイ中は、 ストレージ エミュレーターを使用できます。デプロイされたロールは有効な ストレージ アカウントを指定する必要があります。Visual Studio では、ロールのプロパティの [キャッシュ] タブで適切なストレージ アカウントを指定できます。

どのキャッシュ クラスターにも default という名前のキャッシュが少なくとも 1 つあります。ロール ベースの インロール キャッシュ では、他の名前付きキャッシュを追加することもできます。キャッシュごとにさまざまな設定を変更できます。次のスクリーンショットは、Visual Studio ロールの設定の [キャッシュ] タブにある [名前付きキャッシュ設定] セクションを示しています。

名前付きキャッシュのプロパティのキャッシュ

Visual Studio で、[名前付きキャッシュの追加] ボタンをクリックして名前付きキャッシュを追加します。前の例では、NamedCache1 および NamedCache2 という 2 つのキャッシュが追加されています。各キャッシュの設定はそれぞれ異なります。表の特定のフィールドを選択して変更することで、設定を変更します。

名前付きキャッシュを使用することで、アプリケーションを柔軟に設計できます。名前付きキャッシュには、それぞれ独自のプロパティがあります。たとえば、あるキャッシュでは [高可用性] を有効にして高可用性を利用することができます。別のキャッシュにこの設定が必要だとは限りません。高可用性を使用する場合、各キャッシュ アイテムには 2 倍のメモリが必要です。リソースを効率的に使用するには、必要なキャッシュにのみ高可用性を使用するようにします。複数のキャッシュに異なるプロパティを設定してアプリケーションの要件を満たす同様のシナリオは他にもあります。

キャッシュ クライアントは、キャッシュ クラスターとの間でアイテムを格納および取得する任意のアプリケーション コードです。ロールでの インロール キャッシュ の場合、キャッシュ クライアントは同じ キャッシュ ロールの一部であるか、デプロイ内の他のロールに組み込まれている必要があります。キャッシュ クライアントを構成するには、アプリケーション構成ファイルや Web 構成ファイルを使用します。詳細については、「方法: In-Role Cache を使用できるように Visual Studio を準備する (Azure Cache)」を参照してください。次の例は、構成ファイル内の dataCacheClient 要素を示しています。

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

前の例では、autoDiscover 要素の identifier 属性が CachingRole1 に設定されています。この識別子は、CachingRole1 で インロール キャッシュ が有効になっていることを示します。これにはキャッシュ サーバーの場所が指定されています。キャッシュ クライアントは任意の キャッシュ 操作で自動的に CachingRole1 を使用します。

キャッシュ クライアントを一度構成すると、どのキャッシュにも名前でアクセスできます。次の例では、NamedCache1 キャッシュにアクセスしてアイテムを追加しています。

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

DataCache コンストラクターは 2 つのパラメーターを取ります。キャッシュ名と dataCacheClient セクション名です。キャッシュ名の詳細については、前のセクションの「名前付きキャッシュ」を参照してください。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2015 Microsoft