Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET web应用程序的内存缓存_Asp.net - Fatal编程技术网

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

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

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

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


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

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

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

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

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

您可以创建一个属性,该属性返回缓存对象(如果存在),或者从数据库中检索它

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