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

cache or shared class for global variables in aspnet

缓存和共享 classes 是应用程序范围的。我知道一些细节,但这是场景:

我将参数保存在数据库中。 我将它们读取到数据表并将它们存储在缓存中。 每当我需要将缓存变量直接投射到数据表时,查询它并获得结果。 所以我不是每次都使用 sql 服务器。

备选方案是: 读取数据库并将其存储在 class 共享变量中 每当需要时,我都会使用这个共享变量(数据表)并查询它。 如果这个变量为空,我从数据库中填充 ilt。 由于变量是数据表,我继续需要直接转换它。

首选哪一个?或者我可以使用它们中的任何一个吗,因为它们没有区别。

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

有什么建议吗?您能想到这种情况下仅适用于不会更改的参数的任何可能结果吗?

    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.它们会比缓存快一点,因为缓存需要查找字典。 2. 它们更具可读性,更易于使用

事实上我不记得用于缓存。因为缓存中存储的任何内容都是共享数据,所以?事实上,我对这个问题很好奇,我将打开新的 Whosebug 问题:asp.net shared variables vs cache