PHP会话变量有哪些替代方案?

时间:2012-02-07 14:19:37

标签: php session-variables

我正在撰写一个全新的网站,如果我能够使用负载均衡器在多台机器上托管网站,我想确保它能够轻松扩展。

可以对网站的用户进行身份验证。换句话说,我需要维护一些状态信息。我的第一反应是使用Session变量,但后来我将被限制在一台机器上。我知道有办法将会话变量存储在外面(在DB,redis,memcached中),但这是唯一的选择吗?

会话变量有哪些替代方案? Facebook和其他大型网站如何做到这一点?

P.S。我不是在寻找另一个会话处理程序(DB,redis等)。我想知道是否有办法完全摆脱会话变量。

2 个答案:

答案 0 :(得分:8)

有没有听说过session_set_save_handler?它允许您使用默认PHP会话处理程序以外的机制(在tmp目录中写入sess_xxxxxxxxxxxx文件的机制)。

您可以编写自己的使用数据库的会话处理程序。这可能是一项耗时的任务;因此,您可以暂时使用默认的PHP会话处理程序,并在准备好后透明地切换到数据库。除了实现和插入六个会话处理函数的版本之外,您可能不必重写任何代码。

答案 1 :(得分:1)

您可以查看缓存,例如使用Zend cacheAPC cache