2013-10-22 33 views
0

我需要为ASP.NET Web应用程序(一个实例)缓存最少一小时的非常少量的数据。显然这需要线程安全,所以我可以从我的请求中访问缓存。ASP.NET Web应用程序的内存缓存

我想这样做“在过程中”,而不是使用任何外部的东西。

什么是最简单的方法来实现呢?

回答

1

您可以使用ASP.NET为您提供的Cache对象。

如果存在,您可以创建一个返回缓存对象的属性,否则从数据库中检索它。

private myClass myProp { 
    get{  
     if (Cache["Key1"] == null) 
      Cache.Add("Key1", "Value 1", null, DateTime.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.High); 
     return (myClass)Cache["Key1"]; 
     } 
    } 
1

使用静态变量。你可以编写一个静态缓存类,包括你的更新逻辑(最多一小时),并将检索到的数据存储在静态成员中。

该类将保留在应用程序池中,直到它被回收为止。对于您的用例而言,这可能太频繁或很少。但缓存能力应该足够公平。

对于线程安全问题,您可以在此类中提供getter方法,并使用lock statement