我需要为一个 ASP.NET Web 应用程序(一个实例)缓存非常少量的数据最多一小时。显然,这需要是线程安全的,以便我可以从我的请求中访问缓存。
我想“进行中”做这个,而不是使用任何外部的东西。
实现这一点的最简单方法是什么?
我需要为一个 ASP.NET Web 应用程序(一个实例)缓存非常少量的数据最多一小时。显然,这需要是线程安全的,以便我可以从我的请求中访问缓存。
我想“进行中”做这个,而不是使用任何外部的东西。
实现这一点的最简单方法是什么?
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"];
}
}
使用静态变量。您可以编写一个包含更新逻辑的静态缓存类(最多一小时)并将检索到的数据存储在静态成员中。
该类将保留在应用程序池中,直到它被回收。对于您的用例来说,这可能太频繁或太少。但是缓存能力应该足够公平。
对于线程安全问题,您可以在此类中提供 getter 方法并使用lock
语句。