PHP将其会话信息存储在建立该会话的服务器主机的文件系统上.在多主机PHP环境中,负载在每个主机之间非智能地分布,每个请求都不能使用PHP会话变量(除非偶然将请求分配给同一主机 - 假设我们无法控制负载均衡器) .
这个名为"The Hitchhikers PHP负载平衡指南"的网站建议覆盖PHP会话处理程序并将会话信息存储在共享数据库中.
您认为,在多PHP主机环境中维护会话信息的最佳方法是什么?
更新:感谢您的反馈.对于任何寻找示例代码的人,我们找到了一个关于为MySQL编写Session Manager类的有用教程,我建议您查看.
数据库,或数据库+ Memcache.一般来说,不应经常写会话.从数据库解决方案开始,该解决方案仅在会话数据发生更改时写入数据库.稍后应该添加Memcache作为性能增强.数据库解决方案将非常快,因为您只需要查找主键.确保db具有行锁定,而不是表锁定(myISAM).MemCache只是一个坏主意......如果它溢出,崩溃或重新启动,用户将被注销.