2015-08-15 208 views
1

如果我在php中将会话变量中的文本文件的内容存储起来,它会保留在会话期间的内存中吗?会话变量是否保留在内存中的PHP

我有一个小型项目,我需要在刚好超过1MB的特定文本文件中执行搜索。我正在考虑使用会话变量,如果它保留在内存中,这样我就不必一次又一次地读这个文件。

+0

任何数量的数据都可以存储在那里,因为会话保留在服务器端。 唯一的限制是sessionId的长度不应该超过〜4000字节 - 由于sessionId可能存储在cookie中或编码在URL中(使用“URL重写”),而且HTTP头长度限制为4Kb cookie规范说cookie的大小以及HTTP请求(例如GET /document.html)不能超过4kb。 –

回答

0

不,会话将默认保存在文件中(例如在/ tmp中)。当然,你可以使用内存,例如memcached。也可以为会话使用数据库。

但是,如果您有足够的内存,请将会话存储在内存中(速度非常快)。 Memcached是一个很棒的分布式内存对象缓存系统。有关更多信息,请参见http://memcached.org

这里对memcached的扩展库:http://php.net/manual/en/book.memcached.php

0

是的,它会留在记忆中以保持会话的生命。你的1mb远离它可以容纳的最大容量(默认情况下我认为是128MB)。 但是,如果从文件中读取文件效率更高,则测试两种方法。

0

它将使用在服务器上的文件存储。您可以在由session_save_path定义的路径中看到会话文件。根据文件系统的不同,该文件可能会保留在内存中,具体取决于使用情况,但基本上是一个文件。

我忘了提,获得的信息主要来自这里:Where and How is data stored in a session?

0

会话不是被存储在文件或数据库中,它不会消耗PHP内存(服务器内存)。