Share via


Azure In-Role Cache のリージョンとタグ

重要

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

In-Role キャッシュでは、ユーザー定義 リージョンの作成と使用がサポートされます。 この機能は、ロールベースのIn-Role キャッシュに存在するキャッシュで使用できます。 リージョンはキャッシュされた項目のサブグループです。 またリージョンでは、タグと呼ばれる追加の説明的な文字列を使用した、キャッシュされた項目への注釈付けがサポートされています。 リージョンでは、そのリージョン内のタグ付きアイテムに対する検索操作を実行できます。

リージョンの考慮事項

リージョンは省略可能です。それらを使用する場合は、 CreateRegion メソッドを使用してコードで明示的に作成します。 リージョンを作成したら、リージョンに挿入されたオブジェクトにタグを追加できます。 Add メソッドと Put メソッドには、リージョン名を受け入れるオーバーロードがあります。 特定のタグを持つオブジェクトの領域を検索するには、GetObjectsByTag、GetObjectsByAnyTagGetObjectsByAllTags のメソッドを使用します。

検索機能の構造要件に起因し、あるリージョンのオブジェクトは単一のキャッシュ サーバーに制限されます。 Azure デプロイでは、リージョン全体が 1 つのサーバー上に存在することを意味します。 高可用性が有効になっている場合、リージョンのバックアップは別のサーバーにあります。 Azure では、これらのサーバーは、In-Role Cache をホストするロールの仮想マシン インスタンスです。 この動作は、リージョンを使用しない場合とは異なります。 そのシナリオでは、分散インメモリ キャッシュの新しい項目が利用可能ないずれかのキャッシュ サーバーに置かれます。

警告

リージョンは、いずれかのキャッシュ サーバー上にある単一エンティティとして存在する必要があります。 したがって、1 つのロール インスタンスで使用できるキャッシュ メモリの量は、予想される最大リージョンを超える必要があります。 複数の小さいリージョンを使用すると、リージョンとタグ付けの利点だけでなく分散キャッシュの利点も活用できます。

次の例では、Test という名前のリージョンを作成する方法を示します。

DataCache cache = new DataCache("default");
cache.CreateRegion("Test");

次の例では、タグと一緒に Test リージョンに 3 つのオブジェクトを追加する方法を示します。

List<DataCacheTag> tagList1 = new List<DataCacheTag>()
{ 
    new DataCacheTag("Tag1"),
    new DataCacheTag("Tag2")
};
List<DataCacheTag> tagList2 = new List<DataCacheTag>()
{
    new DataCacheTag("Tag3")
};
cache.Put("Key1", "Value1", tagList1, "Test");
cache.Put("Key2", "Value2", tagList1, "Test");
cache.Put("Key3", "Value3", tagList2, "Test");

次の例では、Test リージョンで Tag1 タグが設定されたすべてのオブジェクトを検索する方法を示します。

foreach (KeyValuePair<string, object> result in 
    cache.GetObjectsByTag(new DataCacheTag("Tag1"), "Test"))
{
    string keyValue = result.Key;
    string objectValue = result.Value.ToString();
}

参照

概念

Azure Cache の In-Role Cache の機能