把东西都扔到session中吗???

SnailLi 2004-07-28 04:31:26


对于小型的应用,一些和用户权限相关的东西都可以放在session,但对于大型的应用,同时连接数可能上万,这样把信息都存在session对服务器性能是不是有很大影响啊??对于这样的情况该采取什么措施,放到数据库中吗???
...全文
123 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
喝醉的咖啡 2004-07-29
  • 打赏
  • 举报
回复
建议你看看 Jive 的 Cache/Buffer 处理

我做的应用很少用 Session,一般所有用户:匿名/非匿名 访问网站的时候都有一个 我的系统自行维护的 SessionKey
这样的好处是不必依赖于特定的 Application Server 就能做 cluster

另外,采用自己的 SessionKey 后台可以用多种形式实现 SessionServer,甚至在负载均衡模式下可以做一个 Session GateWay。比如用 DB 来实现保存 Session 信息,那就有一个 Session 表中存放了每一个在线的 SessionKey/ID 以及最后更新时间。同时还可以有一个 SessionValues 表可以对应每个 SessionKey/ID 存放一些扩展的信息,比如 UserName 等等
后台进程,比如 SQLServer 的 SQLAgent 每分钟检查用 delete SessionTable Where LastAccessTime - now > 20min 来清除过期会话
这样就能实现自己的会话机制——也可以不用 DB,呵呵,这一点 Jive 的cache做得不错的

squallzeng 2004-07-29
  • 打赏
  • 举报
回复
同意
dawangzi16 2004-07-29
  • 打赏
  • 举报
回复
建议少用session ,只存放需要的信息
dawangzi16 2004-07-29
  • 打赏
  • 举报
回复
如果处理好session的实效期那还是可以用的,不过建议使用一个容器。如hashmap存放你需要放在session中的东西。这两者很有相似之处阿,取出来的都是Object
Weilibo 2004-07-29
  • 打赏
  • 举报
回复
尽量少放东西到session,一般只放一些用户的个人登陆信息
tangbow 2004-07-29
  • 打赏
  • 举报
回复
尽量少的往session里面放东西,不然会大大占用服务器的资源
rainworm 2004-07-29
  • 打赏
  • 举报
回复
一般登陆资料什么的可以放在session里
或者是分页的时候,也可以在session里放置查询结果
梦想家起飞 2004-07-29
  • 打赏
  • 举报
回复
setAttribute()的同时要想到在什么地方什么环节removeAttribute()。
getSession()的同时也要想到在什么地方什么环节invalidate()。

session也意味着一种“作用域”作用域比session小的东西可以用request传递,作用域比session大的可以用application传递,别把什么东西都往session里面扔就行。
SnailLi 2004-07-29
  • 打赏
  • 举报
回复
那放在数据库里吗??
jinsfree 2004-07-28
  • 打赏
  • 举报
回复
session里面尽量不要放大的东西吧
lovelymaomao 2004-07-28
  • 打赏
  • 举报
回复
第一选择是放到cookie中,如果客户端不支持的话,就没办法咯
session里面尽量少放,比如用户是否登陆?有些东东暂时性的放进去。。用不到的时候就清空。。。

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧