aspnet中全局变量的缓存或共享类

时间:2015-02-14 14:16:55

标签: asp.net vb.net class caching shared

缓存和共享类是应用程序范围的。我知道有一些细节但是这里的情景:

我将参数保存在数据库中。 我将它们读取到datatable并将它们存储在缓存中。 每当我需要我直接将缓存变量转换为datatble,查询它并获得结果。 所以我每次都不使用sql server。

替代方案是: 读取数据库并将其存储在类共享变量中 只要需要,我就使用这个共享变量(datatable)并查询它。 如果此变量为空,则从db填充ilt。 因为变量是数据表,我需要直接播放它。

哪一个更受欢迎?或者我可以使用它们中的任何一个,因为没有区别。

这门课程不是特别的。只包含从数据库中读取参数的函数。为了加快速度,我开始使用aspnet缓存,但我注意到我不需要,因为类变量可以处理它。

有什么建议吗?您是否认为此方案的任何可能结果仅适用于不会发生变化的参数?

    class Class1

       private shared localVar as datatable

       public shared function readParam1 as string  -- this is my old method
          ... SELECT from params table
          return  value
       end function

       public shared function readParam2 as string   -- then I implemented this
          if httpcontext.cache variable is empty then
               ... SELECT from params table
               ... set cache variable
          end if
          value = directcast(cachevalue, string) 
          return  value
       end function  

       public shared function readParam3 as string  -- now I'm planing to use this
          if localVar is empty then
               ... SELECT from params table
               ... slocalVar = sql table
          end if
          value = select value with localVar.Select function 
          return  value
       end function 

end class  

1 个答案:

答案 0 :(得分:2)

共享变量是赢家: 1.它们会比缓存快一点,因为缓存需要查找字典。 2.它们更易读,更易于使用

实际上我记不起用于缓存了。因为你在缓存中存储的是共享数据,所以呢?事实上,我对这个问题非常好奇,我将打开新的stackoverflow问题:asp.net shared variables vs cache