一尘不染

会话变量是否有限制?

php

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

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

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

提前致谢!


阅读 223

收藏
2020-05-29

共1个答案

一尘不染

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

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

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

2020-05-29