【发布时间】:2014-03-13 14:04:18
【问题描述】:
我的$_SESSION 变量定义为保存在memcache 中时遇到不一致。会话值之间混淆的常见原因是什么?
我在脚本开头使用session_start(),但有时$_SESSION 变量会设置为旧版本。
【问题讨论】:
我的$_SESSION 变量定义为保存在memcache 中时遇到不一致。会话值之间混淆的常见原因是什么?
我在脚本开头使用session_start(),但有时$_SESSION 变量会设置为旧版本。
【问题讨论】:
这可能是会话锁定问题。当 PHP 处理请求时,正常流程会阻止会话文件读取/写入(只有该进程可以读取/修改此文件)。
所以当另一个请求(比如说 AJAX 请求)必须等到第一个请求完成并解锁会话时。
默认情况下可能禁用 memcache 会话锁定,因此在这种情况下:
在这种情况下,您将遇到会话不一致,因为请求 A 将覆盖请求 B 所做的更改。
【讨论】: