在PHP中,当我使用文件处理程序进行会话存储时,Apache会将SESSION缓存在内存中吗? 如果没有,在内存表(mysql)上使用db存储引擎会不是一个好主意?
答案 0 :(得分:3)
Apache本身不会将会话文件“缓存”到内存中:Apache与会话无关:它纯粹与PHP相关,与Apache无关。
PHP本身不会将会话文件“缓存”到内存中:它将其写入磁盘(并且,为了安全起见,操作系统可能真的将该文件写入磁盘)
使用数据库可能有助于磁盘访问;但这意味着与另一台服务器的网络连接,它将使MySQL工作......不一定非常好。
相反,我宁愿使用memcached存储我的会话;它是一个网络守护进程(它在集群中工作,这意味着你可以拥有几台带有memcached服务器的机器 - 如果你的服务器上没有足够的内存,那么它很有用)将数据存储在内存中。
memcached经常用于存储会话数据 - 我目前正在项目中使用memcached来实现(等等)。
请参阅PHP手册的memcache section:如果要与memcached通信,则需要安装PHP扩展。