我正在撰写一个全新的网站,如果我能够使用负载均衡器在多台机器上托管网站,我想确保它能够轻松扩展。
可以对网站的用户进行身份验证。换句话说,我需要维护一些状态信息。我的第一反应是使用Session变量,但后来我将被限制在一台机器上。我知道有办法将会话变量存储在外面(在DB,redis,memcached中),但这是唯一的选择吗?
会话变量有哪些替代方案? Facebook和其他大型网站如何做到这一点?
P.S。我不是在寻找另一个会话处理程序(DB,redis等)。我想知道是否有办法完全摆脱会话变量。
答案 0 :(得分:8)
有没有听说过session_set_save_handler?它允许您使用默认PHP会话处理程序以外的机制(在tmp目录中写入sess_xxxxxxxxxxxx文件的机制)。
您可以编写自己的使用数据库的会话处理程序。这可能是一项耗时的任务;因此,您可以暂时使用默认的PHP会话处理程序,并在准备好后透明地切换到数据库。除了实现和插入六个会话处理函数的版本之外,您可能不必重写任何代码。
答案 1 :(得分:1)
您可以查看缓存,例如使用Zend cache或APC cache。