0

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

我想“进行中”做这个,而不是使用任何外部的东西。

实现这一点的最简单方法是什么?

4

2 回答 2

1

You can user the Cache object ASP.NET provides you with.

You can create a property that returns the cached object if exist else retrieve it from 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"];
        }
    }
于 2013-10-22T11:34:30.410 回答
1

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

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

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

于 2013-10-22T10:45:50.803 回答