- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我需要在 $_SESSION
中存储许多数组,以防止从 MySQL 检索信息。可以吗? $_SESSION
中有多少信息“太多”了,或者没有“太多”?谢谢。
最佳答案
您可以在 session 中存储的数据限制受 session 存储层的限制。默认 session 存储是文件系统,一个 session 存储在一个文件中。 session 变量/数组键的名称及其数据存储在 serialized form 中。 .管道符号将变量名称和值彼此分开。
如果您存储的是带字符串的数组,那么文件的大小将大于字符串的长度加上键的长度,元数据的一些开销以及变量名称的大小。
文件的大小受文件系统的限制。例如,在 EXT3 中,每个文件为 16 GB。所以这是一个“太多”。您不能将比存储层允许的更多的数据存储到 session 中。
我能想到的下一个限制是你的内存力。由于PHP需要将数据从文件中加载到内存中,并在请求结束时从内存中存储到文件中。所以如果你有一个 memory limit in PHP那么这实际上也会限制您的 session 大小。例如,PHP 5.2 中有 16MB 的标准内存限制,但这可能会因您的安装而异。
顺便说一下,只为 session 使用整个内存没有多大意义。
除了这些硬限制之外,可能还有与一致请求的数量、硬盘速度等相关的性能限制。
由于你的问题很短,我认为你到目前为止没有遇到任何具体问题,所以我认为它超出了范围。例如。如果您真的不需要,则使用 memcached 只是开销。以及讨论根本无法回答的设计决策(从不在 session 中缓存)。
每个 session 100 或 200 KB(在您的系统上找到 session 目录并实际查看文件变得有多大)应该不会破坏您的程序。正如建议的那样,您应该注意在一段时间后自动删除不再需要的旧 session 文件。
要了解有关 PHP session 配置的更多信息,请参阅 Session Runtime Configuration in the PHP Manual .
关于php - 在$_SESSION里存很多信息可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5872727/
我有 json 数据: { "products": [ { "productId" : 0, "productImg" : "../img/product-ph
我是一名优秀的程序员,十分优秀!