php – 可以在$_SESSION中保存大量信息吗?

前端之家收集整理的这篇文章主要介绍了php – 可以在$_SESSION中保存大量信息吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在$_SESSION中存储许多数组,以防止从 MySQL中检索信息.好吗? $_SESSION中的“太多”信息是多少,或者没有“太多”?谢谢.

附:或者最好使用http://php.net/manual/en/book.memcache.php

您可以在会话中存储的数据限制受会话存储层的限制.默认会话存储是文件系统,一个会话存储在一个文件中.存储会话变量/ array-key的名称以及它在 serialized form中的数据.管道符号将变量名称和值彼此分开.

如果您正在使用字符串存储数组,那么该文件将大于字符串的长度加上键的长度,并且元数据的开销和变量名称的大小也会相似.

文件大小受文件系统限制.例如,在EXT3中,每个文件为16 GB.所以这是一个“太多”.您无法将更多数据存储到会话中,而不是存储层允许的数据.

我能想到的下一个限制就是你的记忆.因为PHP需要将文件中的数据加载到内存中,并在请求结束时将内存中的数据存储到文件中.所以如果你有一个memory limit in PHP那么这实际上会限制你的会话的大小.例如,PHP 5.2中的标准内存限制为16MB,但这可能因您的安装而异.

使用整个内存进行会话只是没有多大意义.

除了这些硬限制之外,可能存在性能限制,这些限制与同等请求的数量,硬盘的速度等有关.

由于你的问题非常简短,我认为你到目前为止没有遇到任何具体的问题,所以我认为这将超出范围.例如.如果你真的不需要使用memcached将只是开销.除了讨论设计决策(从不在会话中缓存)之外根本无法回答.

每个会话100或200千字节(找到您系统上的会话目录并实际查看文件的大小)不应该破坏您的程序.根据建议,您应该注意不再需要的旧会话文件会在一段时间后自动删除.

要了解有关PHP中会话配置的更多信息,请参阅Session Runtime Configuration in the PHP Manual.

原文链接:https://www.f2er.com/php/136402.html

猜你在找的PHP相关文章