首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MVC 2中存储用户数据

在MVC 2中存储用户数据
EN

Stack Overflow用户
提问于 2011-05-06 23:34:16
回答 1查看 554关注 0票数 0

因此,当用户访问我的页面时,我希望从他们与页面的交互方式中存储某些数据。不过,这些数据都没有持久化,所以我正在尝试找出最好的方法。

例如,他们登录到我的页面,我通过javascript/google地图获取他们的位置。我应该把它存储在会话中吗?我也通过javascript得到了他们的IP地址。我应该只在每次需要使用javascript时进行查询,还是也应该将其存储在会话中?

缓存是否比将数据存储在会话中更好?我是否应该将所有这些放在model中,将model放在缓存中,然后使用Guid在缓存中为正确的用户检索正确的model?如果页面上同时有数千个用户,这会变得非常昂贵吗?

用户还可以使用这些信息从数据库中获取记录列表,这些信息是我作为参数收集到存储的proc中的。这个列表有时需要重新查询,但在其他时候,只需要在页面上重新排序。我不想在每次排序时都查询所有这些记录,但是缓存能为每个登录的用户保存几千条记录吗?

我只是从来没有在MVC中遇到过这个东西,所以我可以使用一些指导。

谢谢你们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-06 23:42:16

如果希望在用户访问过程中持久化某些用户数据,可以使用ASP.NET会话、cookies或其他更持久的介质,如数据库。我通常将用户数据存储为对象,这些对象被序列化为json,加密并写到cookie中。这允许我在多次访问中持久化数据,即使他们离开又回来。

至于缓存数据,有很多选择,ASP.NET有一些很好的内置功能,可以让你更容易。当您缓存数据时,它将存储在您的web服务器的内存中,除非您设置了外部缓存服务器,如memcached。如果缓存的数据是公共数据,则可以在多个用户之间共享,消除了缓存的浪费。您还可以设置缓存失效,以便在数据变旧时自动清除缓存。

至于要缓存的数据量,这将取决于您缓存的内容、这些对象在内存中的大小、将创建这些缓存对象的用户数量以及您的服务器有多少可用内存。

理想情况下,你会想要计算出来,以确定成本是多少。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5913664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档