本文档已存档,并且将不进行维护。

Azure 角色中缓存中的区域和标记

更新时间: 2015年8月

Important重要提示
Microsoft 建议使用 Azure Redis 缓存进行所有新的开发。有关选择 Azure 缓存产品的最新文档和指导,请参阅哪种 Azure 缓存产品适合我?

角色中缓存支持创建和使用用户定义的区域。此功能可用于驻留在基于角色的角色中缓存中的缓存。区域是缓存项目的一个子组。区域还支持使用附加的描述性字符串(称为标记)对缓存项目进行注释。区域支持对该区域中的任何标记项目执行搜索操作的功能。

区域是可选的;如果要使用区域,需要在代码中使用 CreateRegion 方法显式创建它们。创建区域后,可以为插入该区域的对象添加标记。在接受区域名称的 AddPut 方法上有重载。若要在区域中搜索具有给定标记的对象,请使用方法 GetObjectsByTagGetObjectsByAnyTagGetObjectsByAllTags

由于搜索功能的体系结构要求,区域中的对象被限制在单个缓存服务器中。在 Azure 部署中,这意味着整个区域位于单个服务器上。如果启用了高可用性,则区域的备份存在于其他服务器上。在 Azure 中,这些服务器是托管角色中缓存的角色的虚拟机实例。此行为不同于未使用区域的方案。在该方案中,分布式内存中缓存中的新项目将放置在任何可用的缓存服务器上。

Warning警告
区域必须以其中一个缓存服务器上的单个实体的形式存在。因此,任何单个角色实例上可用的缓存内存量必须大于最大预期区域。可能会使用多个较小的区域来实现区域和标记的优点以及分布式缓存的优势。

以下示例显示了如何创建名为 Test 的区域。

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

以下示例显示了如何使用标记将三个对象添加到 Test 区域。

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();
}

另请参阅

显示: