C# 如果像会话一样使用数据缓存,它的性能会更好吗

C# 如果像会话一样使用数据缓存,它的性能会更好吗,c#,asp.net,vb.net,session-state,data-caching,C#,Asp.net,Vb.net,Session State,Data Caching,我正在维护一个asp.net应用程序,我发现以前的开发人员将数据缓存实现为会话,这意味着他们将每个会话的数据存储在缓存中 Public Function GetDataCache(ByVal dataCacheKey As String) As Object dataCacheKey = dataCacheKey & Convert.ToString(LoginSessionDO.UserID) Return Cache(dataCacheKey) End Functi

我正在维护一个asp.net应用程序,我发现以前的开发人员将数据缓存实现为会话,这意味着他们将每个会话的数据存储在缓存中

Public Function GetDataCache(ByVal dataCacheKey As String) As Object
    dataCacheKey = dataCacheKey & Convert.ToString(LoginSessionDO.UserID) 
    Return Cache(dataCacheKey)
End Function
在这个应用程序中,有许多屏幕,用户可以在网格临时文件中添加多行(数据),这些临时文件实际上只为特定的当前用户存储在缓存中,最后按下保存按钮将数据保存到数据库中

我的问题是缓存是否像会话一样使用!它会提高性能吗? 实际上,我可以在我的开发环境中更改它以检查性能,但我们不能在我们的环境中创建类似于负载的prod,而且如果没有任何保证,我也不能在生产环境中更改和部署代码

请推荐我

  • 缓存的实现方式好吗
  • 它像会话一样使用它的性能会比会话更好吗

  • 需要清除缓存,否则所有项目将保留,直到应用程序域回收。会话的有效期要短得多,例如,可以在注销时显式放弃


    如果您的站点增长,这可能是一个扩展问题。但是,如果会话在预期的情况下不再存在,则会话的到期时间较短可能会导致保存问题。db中的暂存表可能是更好的方法。

    可能是,但很难说。数据有多大,有多少用户,是否经常使用,是否经常更改,是否正确删除,是否快速/慢速填充数据库查询,…存储在缓存中的数据特定于用户。只有一个用户可以访问登录到系统中的存储数据,所以,如果系统中当前有50个用户登录,那么如果所有用户都在同一页面上,则将为特定页面创建50个缓存对象。。那么这样会话变量将是好的还是缓存?每个网格平均有10-40条记录,有5-10列