速度缓存和IS

时间:2011-07-06 07:21:10

标签: sql-server asp.net-mvc database iis

我想知道速度和IS之间的关系。如果请求以速度满足,那么它将使用工作进程。或者我发生了什么困惑。 ?

此外,我想存储一些数据,如国家,州和城市,以便在速度中自动建议。这个数据库可能是3 GB。现在速度将如何工作。以及IS将如何运作。这是否会影响IS。基本上我的要求是我想以速度保存所有国家,州和城市数据,不想打数据库,也不想让IS忙。解决办法是什么?

请帮忙

1 个答案:

答案 0 :(得分:1)

Velocity是微软AppFabric分布式缓存技术的代号。与memcache非常相似,它用于跨多台计算机缓存对象。

这与IIS处理请求的方式没有关系。 IIS满足所有请求,AppFabric是一种存储数据的机制,而不是处理请求。

回答你的第二个问题;您可以使用AppFabric进行数据的首次呼叫检查。如果缓存中不存在数据,则调用数据库填充缓存,然后返回数据。

var factory = DataCacheFactory();
var cache = factory.GetCache("AutoSuggest");

List<Region> regions = cache.Get("Regions") as List<Region>;
if (regions == null) {
    regions = // Get regions from database.
    cache.Add("Regions", regions);
}

return regions;

首先检查缓存使应用程序能够获得更快的响应,因为数据库仅在第一个实例(理想情况下)上被命中,并且结果数据被推回到缓存中。

你可以把它包起来:

public T Get<T>(string cacheName, string keyName, Func<T> itemFactory)
    where T : class
{
    var cache = dataFactory.GetCache(cacheName);

    T value = cache.Get(keyName) as T;
    if (value == null) {
         value = itemFactory();
         cache.Add(keyName, value);
    }

    return value;
}

通过这种方式,您可以将查询调用更改为类似于:

var regions = Get<List<Region>>("AutoSuggest", "Regions", () => GetRegions());