一尘不染

处理多个主机上的PHP站点的会话的最佳方法是什么?[关闭]

mysql

PHP将其会话信息存储在建立该会话的服务器主机的文件系统上。在多主机PHP环境中,负载在每个主机之间智能分配,PHP会话变量不适用于每个请求(除非偶然将请求分配给同一主机-
假设我们无法控制负载均衡器) 。

这个被称为“ PHP负载平衡旅行者指南”的网站建议重写PHP会话处理程序并将会话信息存储在共享数据库中。

在您看来,在多PHP主机环境中维护会话信息的 最佳 方法是什么?

更新: 感谢您的宝贵反馈。对于寻找示例代码的任何人,我们都找到了一个有用的教程,关于为MySQL编写Session
Manager类
,我建议您检出。


阅读 199

收藏
2020-05-17

共1个答案

一尘不染

数据库或数据库+缓存。一般而言,会议不应该经常写。从数据库解决方案开始,该解决方案仅在会话数据已 更改 时才写入db
。以后应添加Memcache,以提高性能。数据库解决方案将非常快,因为您只需要查找主键。确保数据库具有行锁定,而不具有表锁定(myISAM)。MemCache仅是一个坏主意…如果它溢出,崩溃或重新启动,则用户将被注销。

2020-05-17