在会话和缓存中存储数据表有什么区别?优点和缺点是什么?

因此,如果它是一个以DataTable形式返回结果并将其绑定到网格视图的简单搜索页面.如果用户‘a’搜索和用户‘b’搜索,最好将其存储在会话中,因 for each 用户很可能有不同的结果,或者我是否仍然可以将他们的每个搜索存储在Cache中,或者这是否没有意义,因为只有一个缓存.我想基本上我想说的是缓存是否会被覆盖.

推荐答案

一个重要的区别是,缓存中的项目可能会在指定的时间后过期(将从缓存中删除).放入会话中的项目将一直保留在那里,直到会话结束.

当可用内存量变小时,ASP.NET还可以从缓存中删除项目.

另一个区别是:会话状态可以保持在外部(状态服务器、SQL server),并在web应用的多个实例之间共享(用于负载平衡).缓存的情况并非如此.

除了这些差异(正如其他人所指出的):会话是每个用户/会话的,而缓存是每个应用程序的.

Asp.net相关问答推荐

在 AppConfig.json 中存储对象的最佳方式

web.config 部分的单独配置文件

在哪里可以记录 ASP.NET Core 应用程序的启动/停止/错误事件?

威胁已经被清除了

由于缺少定义,在 .net Core 应用程序上构建失败

不支持关键字:服务器

最佳服务器端 .NET PDF 编辑库

VirtualPath 在当前应用程序根目录之外

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用

如何找出我的 Windows 域上托管 LDAP 的服务器?

等价于 ASP.NET Core 中的 Html.RenderAction

如何在 ASP.NET MVC 中设置时区?

什么时候应该使用 Response.Redirect(url, true)?

头标记中的内联代码 - ASP.NET

远程计算机无法连接到 Visual Studio Web 服务器

ASP.net 网站中的 C# 密码文本框

中继器中的中继器

Visual Studio 2013 ASP.NET 项目中 Antlr 包的用途是什么?

如何调试 w3wp clr.dll 错误

无法使用 ip:port 访问 WEB API,但可以在 VS 调试模式下使用 localhost:port