【问题标题】:Storing Large Amount of Data in Session - Should I Do This?在会话中存储大量数据 - 我应该这样做吗?
【发布时间】:2015-08-10 17:47:12
【问题描述】:

这里的高级问题 - 我正在开发一个 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

提前致谢

【问题讨论】:

    标签: java spring spring-mvc session


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2016-07-01
      相关资源
      最近更新 更多