【发布时间】:2010-02-25 20:38:13
【问题描述】:
在 PHP 中,当我使用文件处理程序进行会话存储时,Apache 是否将 SESSION 缓存在内存中?
如果没有,在内存表(mysql)上使用 db 存储引擎会是一个好主意吗?
【问题讨论】:
标签: php performance apache session caching
在 PHP 中,当我使用文件处理程序进行会话存储时,Apache 是否将 SESSION 缓存在内存中?
如果没有,在内存表(mysql)上使用 db 存储引擎会是一个好主意吗?
【问题讨论】:
标签: php performance apache session caching
Apache 本身不会将会话文件“缓存”到内存中:Apache 与会话无关:它纯粹与 PHP 相关,与 Apache 无关。
PHP 本身也不会将会话文件“缓存”到内存中:它会将其写入磁盘(并且,为了安全起见,操作系统可能真的将该文件写入磁盘)
使用数据库可能有助于磁盘访问;但这意味着与另一台服务器建立网络连接,这将使 MySQL 工作......不一定那么好。
相反,我宁愿使用memcached 来存储我的会话;它是一个网络守护进程(在集群中工作,这意味着您可以拥有多台带有 memcached 服务器的机器——如果您在一台服务器上没有足够的内存,这很有用),它将数据存储在内存中。 p>
memcached 经常用于存储会话数据——我目前在一个项目中使用 memcached 来处理 (除其他外)。
请参阅 PHP 手册的 memcache section:如果您想与 memcached 通信,则需要安装 PHP 扩展。
【讨论】: