繁体   English   中英

在会话中存储大量数据-我应该这样做吗?

[英]Storing Large Amount of Data in Session - Should I Do This?

这里的高级问题-我正在开发一个Spring MVC / Spring Data Project,以通过Spring Repositories搜索数据库中的表。 我正在搜索的表将包含成千上万个记录,甚至上万个记录。 在整个应用程序使用过程中,我都希望保留List中的这些记录,直到满足重置或删除List的条件为止。

我的问题是,将此List存储在我的HttpSession是否可行?

  • 我应该期望这种方法有任何性能问题吗?
  • 如果将我的List存储在会话中,是否存在安全问题?
  • 任何人都可以为此类任务提供最佳实践吗?

快速查看用户会话信息以及4个对象的小型列表(可能是数千个)

Session Attribute Name  Session Attribute Value
searchResults           [com.mysite.dto.User@322bfb87,
                         com.mysite.dto.User@658e75cc, 
                         com.mysite.dto.User@6bd7d82a, 
                         com.mysite.dto.User@27b0e4b6]
userRoles               [ROLE_ADMIN]
username                admin

提前致谢

我会将它们存储在缓存中,而不是会话中。 您可以使用外部缓存,例如BigMemory Terracotta( http://terracotta.org/products/bigmemory )或memcache(如果您在EC2中运行应用程序,Amazon提供了一种易于使用的缓存)。 这将比您的服务器JVM堆具有更大的扩展能力。

另一个想法是将用户ID与用户对象的引用存储在缓存中,现在在会话中您只能存储ID。 这样,您的会话仅保存数字,而不是整个对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM