我想知道速度和IS之间的关系。如果请求以速度满足,那么它将使用工作进程。或者我发生了什么困惑。 ?
此外,我想存储一些数据,如国家,州和城市,以便在速度中自动建议。这个数据库可能是3 GB。现在速度将如何工作。以及IS将如何运作。这是否会影响IS。基本上我的要求是我想以速度保存所有国家,州和城市数据,不想打数据库,也不想让IS忙。解决办法是什么?
请帮忙
答案 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());