我有我存储在asp.net缓存中的产品列表,但是在刷新缓存时遇到问题。根据我们的要求,我想每15分钟刷新一次缓存,但是我想知道,如果在缓存刷新的同时,如果某个用户请求产品列表,那么他应该得到错误还是旧列表,或者他有等待缓存刷新。管理asp.net中的缓存对象
示例代码如下
public class Product
{
public int Id{get;set;}
public string Name{get;set;}
}
我们有一个功能,这使我们的产品列表中BLL
public List<Product> Products()
{
//////some code
}
Cache.Insert("Products", Products(), null, DateTime.Now.AddMinutes(15), TimeSpan.Zero);
我想在这里多加一个局面,让说,我用静态对象而不是缓存对象,那么会发生什么,以及哪种方法最好,如果我们在一个独立的服务器上,而不是群集上
无论哪种方式,它取决于将检索您的数据的代码。 15分钟后,缓存将简单地为“产品”关键字返回null。静态对象将无法在应用程序池回收中生存,所以在这种情况下,它也将依赖于将从静态对象中检索数据的代码。 –
此外,您还需要在两种情况下都使用线程安全集合。请参阅[System.Collections.Concurrent命名空间](http://msdn.microsoft.com/en-us/library/system.collections.concurrent.aspx) – Magnus
你可以给我链接到这个东西实现的例子 – rajansoft1