php 会话变量是否保留在内存中

Does a session variable stay in memory in php

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

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

是的,它将在会话的整个生命周期内保留在内存中。你的 1mb 远远低于它可以容纳的最大容量(我认为默认是 128MB)。 但是,如果只从文件中读取效率更高,请测试这两种方式。

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

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

关于 php 的 memcached 扩展:http://php.net/manual/en/book.memcached.php

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

忘了说主要是从这里获取的信息:Where and How is data stored in a session?

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