在ASP.NET中,将数据临时保存在内存中(在用户级别&用于重用数据)的最佳方法是什么?
目前我正在使用“会话”将数据表保存在内存中。 但在做了几次研发之后,我开始意识到这不是一个好的做法 e、 g 要求: 下拉列表的项目将根据学生类型而有所不同。 下拉数据将从数据库中提取,并使用这些控件 在多个屏幕中。 对于同一个数据库,不建议从不同屏幕调用多个数据库 数据 所以我只需要调用一个DB调用,将数据保存在内存中,然后 然后下次从内存中读取数据。 我也尝试了“缓存”,但问题是缓存不是用户独有的。数据缓存的范围在应用程序域内,而不是会话。每个用户都可以访问此对象在ASP.NET中,将数据临时保存在内存中(在用户级别&用于重用数据)的最佳方法是什么?,asp.net,session,caching,cookies,memory-management,Asp.net,Session,Caching,Cookies,Memory Management,目前我正在使用“会话”将数据表保存在内存中。 但在做了几次研发之后,我开始意识到这不是一个好的做法 e、 g 要求: 下拉列表的项目将根据学生类型而有所不同。 下拉数据将从数据库中提取,并使用这些控件 在多个屏幕中。 对于同一个数据库,不建议从不同屏幕调用多个数据库 数据 所以我只需要调用一个DB调用,将数据保存在内存中,然后 然后下次从内存中读取数据。 我也尝试了“缓存”,但问题是缓存不是用户独有的。数据缓存的范围在应用程序域内,而不是会话。每个用户都可以访问此对象 请帮助我。对于您的场景,H
请帮助我。对于您的场景,HttpContext.Current.Cache应该可以工作。 是缓存不是用户独有的。但是缓存密钥可以是唯一的
var studentId = GetStudentIdFromRequest();
var cacheKey = "SyllabusInfoCacheKey_" + studentId;
然后,您可以使用unique cachekey来插入特定学生的值,然后再获取这些值。
会话也处于应用程序级别。每个用户都有一个ASP.NET_会话ID cookie,它从客户端发送,并在服务器端用于存储/检索值。
注意:要使会话和Asp.Net缓存在负载平衡环境中工作,负载平衡器应该是粘性的
var studentId = GetStudentIdFromRequest();
var cacheKey = "SyllabusInfoCacheKey_" + studentId;