ASP.NET Web应用程序的内存缓存

时间:2013-10-22 10:37:02

标签: asp.net

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

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

实现此目的最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

  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"];
        }
    }