麻烦大神们帮我看看,关于session中存储大数据量的问题

十年树木_2015 2017-11-21 10:51:35
我这个项目当前由于都是调用第三方接口,根据返回的字符串进行json的解析,然后对返回的结果集进行操作。
现在是有个规格对比的功能,因为规格数据量很大(5000+,或者到1w多条数据),所以为了前端页面等待效果,
我分成了三步,流程是这样子的:
1)第一个ajax请求,查询规格1列表,把规格1的list存入session。
2)接着ajax请求,查询规格2列表,把规格2的list存入session。
3)接着ajax请求,从session中取出list1和list2,进行对比功能实现。然后将session中list1和list2清除。

发现这样有潜在问题:
用户并发很多的时候,每个浏览器窗口都有session来存入数据,可能内存吃紧了。

问下大家啊,有什么好的解决方案没?
能除了使用session,还有别的临时存储替代方案吗?
我考虑了下,要不然只能使用数据库来存储long大文本字符串了,先存进数据库里面,大字符串估计读取也不会很慢。

问下大神们,有没有好的解决方案?
...全文
626 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lifewell1 2018-03-08
不用放在session 放在session中每个用户都有了 简单点可以使用applocation 效率更好点使用redis 或者html缓存文件
  • 打赏
  • 举报
回复
引用 9楼lifewell1 的回复:
简单方法放入 applocation
这样不是很好
  • 打赏
  • 举报
回复
引用 9楼lifewell1 的回复:
简单方法放入 applocation
不好
  • 打赏
  • 举报
回复
大家好,小弟我解决了,我是用数据库来存的,用clob来存储大字段,用的时候再取出来,发现也挺好的。可能就是用户量大高并发的时候对数据库压力大。
  • 打赏
  • 举报
回复
yannsPeng 2017-11-23
redis实现session共享。
  • 打赏
  • 举报
回复
lifewell1 2017-11-23
简单方法放入 applocation
  • 打赏
  • 举报
回复
梦天城 2017-11-23
为什么要一次加载那么多数据,尝试用缓存做处理吧,就算你加载5000条你页面也没办法显示吧,一部分一部分的加载把
  • 打赏
  • 举报
回复
什么都不能 2017-11-22
你这规格数据时效性高吗?根据我的理解这种属于不是经常变更的数据 1万条不算多,应该定时将数据同步到你系统的数据库里进行处理。或者放到redis,memcache缓存服务里。如果是实时变化的也不应该放到session里,看请求数是否大,如果不大可以用pojo搞定,如果大应该用mapreduce搞定。
  • 打赏
  • 举报
回复
mtian2020 2017-11-22
用的挺多的,网上搜下有很多教程的
  • 打赏
  • 举报
回复
引用 1楼yanghaimingg 的回复:
放redis应该可以
放redis应该可以,redis是怎么用的啊?现在用的好多?
  • 打赏
  • 举报
回复
mtian2020 2017-11-22
放redis应该可以
  • 打赏
  • 举报
回复
lmkght 2017-11-22
你这是5000条数据 和 5000条数据对比后展示 还是5000条数据 和 5000条数据都列到页面上对比- -
  • 打赏
  • 举报
回复
vswen5 2017-11-22
放在静态变量中 map<String userId,List list> 在写一个监听session的类 销毁的时候清除就好了
  • 打赏
  • 举报
回复
李德胜1995 2017-11-22
使用redis或者memcache,放session.....
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
申请成为版主
帖子事件
创建了帖子
2017-11-21 10:51
社区公告
暂无公告