如果像会话一样使用数据缓存,它将具有更好的性能



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

Public Function GetDataCache(ByVal dataCacheKey As String) As Object
    dataCacheKey = dataCacheKey & Convert.ToString(LoginSessionDO.UserID) 
    Return Cache(dataCacheKey)
End Function

在此应用程序中,有许多屏幕,用户可以在其中临时添加多行(数据),这些行实际上仅存储在该特定当前用户的缓存中,最后按保存按钮将数据保存在数据库中。

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

请建议我

  1. 缓存的实现方式好吗?
  2. 它像会话一样使用,它会比会话具有更好的性能吗?

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

如果您的网站增长,这可能是一个扩展问题。但是,如果会话在预期时不再存在,则会话的较短到期时间可能会导致保存问题。数据库中的临时表可能是更好的方法。

<小时 />

最初答案后几年的编辑。

实际上,最好将添加的行存储在客户端,然后一次性提交所有行。 如果应用程序域在会话中途回收,则上述任一服务器端选项都会遇到问题,并且这两个选项都会导致具有足够用户/数据的服务器上出现扩展问题。

最新更新