当前位置: 首页 > 面试题库 >

会话变量是否有限制?

彭阳朔
2023-03-14
问题内容

如标题所述,会话变量是否有限制(如果有),或者它们被视为 常规 变量并且可以存储相等数量的数据?

我在寻找是否存在除最大长度,最大值等变量类型之外的其他限制。

附注:如果问题不清楚,请告诉我。

提前致谢!


问题答案:

正如@Thariama所说,变量的数量没有限制。此外,会话中可以存储的数据量没有限制(我看到会话的大小为几十MB)。

随着会话的大小变大,您会遇到各种奇怪的问题:PHP 5将整个会话反序列化到内存中session_start()(使用默认会话处理程序-
您当然可以使自己的解决方案成为现实);如果会话的大小为20
MB,并发用户数为50,则您的脚本开始受到磁盘访问速度的严重限制(又名“脚本启动缓慢,就像糖蜜一样”
–仅会话会占用GB的RAM);最后,我们专门设计了一个盒子,可以在其RAM中保持尽可能多的会话,而前端盒子可以通过NFS访问它们(尽管这对我们而言很有帮助,但对您而言可能是过大了)。


请注意,对于许多并发用户和磁盘上的会话存储,会话临时文件的数量可能会导致文件系统限制或其他限制(我们曾经发现)
(将盒子配置为仅允许同时打开4096个文件的硬方法)。所有这些都不是特定于会话的,但是可以由会话处理触发。



 类似资料:
  • 问题内容: 我需要通过过滤器访问会话变量。我什至不知道是否可能。实际上,问题在于实现的方法类型是,而HttpServlet继承了类,而doPost方法的参数是HttpServletRequest。 我可以在ServletRequest的过滤器中访问会话吗? 我应该那样做吗? 你能推荐我什么? 谢谢! 问题答案: 只需将获得的内容转换为即可。

  • 我有一个一页的网站,使用AJAX加载新的php文件和更新显示。 UPDATE:在将session_id()调用添加到主页面和子页面之后,我看到两个页面都有相同的session_id。然而,它仍然不能拉出会话变量,如果我给它赋值,两个同名会话变量将保持相互独立。 这个问题产生的问题的答案:我发现我必须在php.ini文件中设置一个静态session_save路径。对于大多数付费的webhosting

  • 问题内容: 是否可以在PHP中使数组成为会话变量? 情况是,我有一个表(第1页),其中有些单元格具有指向特定页面的链接。下一页将列出名称(第2页,我想保留在会话数组中)及其相应的复选框。提交此表单后,它将进入一个交易页面(第3页,其中已发布复选框的值保存在数据库中以用于对应名称)。现在,如果我返回首页并单击另一个单元格,则会话数组将包含新名称列表还是旧名称列表? 问题答案: 是的,PHP支持将数组

  • 我有多个Gatling模拟,我正试图以一种重用低级调用(即HTTP调用)的方式构建它们,同时构建不同的场景。因此,我有以下结构(为了解释当前状态,使用了echo函数): 在上面提供的测试模拟中,我们从文件中提供数据并选择我们作为Map存储到会话中的属性子集。如果在文件中找到此类属性,我们会在提交回显请求时将它们添加为表单参数。否则我们不会。在这两种情况下,我们都存储了响应正文并将其打印出来。这很好

  • 问题内容: 我在Sun的“ Core Servlets and JavaServer Pages vol 2”中看到了带有会话计数器的示例。 计数器仅仅是建立在和递增/递减会话数与/ : 侦听器在上下文中注册自身,因此可以访问它并获取计数器值。 没有同步块。 安全,不是吗? 可以缓存在CPU寄存器中,并且对于使用? 问题答案: Servlet 3.0的规范规定(第11.5节): 侦听器实例和线程

  • 问题内容: 具体说说(服务器端)V8,并假设我不担心准确性,因为我可以检测和补偿它,那么我可以使用setTimeout 逐字 间隔设置几千个相对简单的超时,而无需面对任何其他限制除了RAM以外?如果我要使用一个在任何给定时间可能有数千个计划的超时的系统,我应该注意什么吗? 作为记录,我已经阅读了John’s Resig关于Javascript计时器如何工作的出色文章,因此无需指出那里已经介绍的内容