PHP - Apc_Fetch似乎不工作 - 返回False

时间:2011-09-02 21:07:02

标签: php apc

我正在使用apc_store和fetch来存储数据,但经过大量调试后,我的存储或获取功能似乎无法正常工作:

$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));

返回

string(3) "BAR"

但如果我这样做

$new = 'new';
apc_store('test', $new);

然后在下一页

apc_fetch('test')

返回的值是否为空?

我错过了一些重要的东西吗?

谢谢,

2 个答案:

答案 0 :(得分:2)

APC Fetch在GCI系统上不起作用,因为每个请求都启动了一个新线程。

答案 1 :(得分:0)

从某个地方引用

  

如果使用FastCGI设置PHP,则使用此功能获取有关正在运行的上载的任何信息可能会遇到麻烦。至少在我的情况下,每个HTTP请求都由不同的PHP进程处理。我可以使用getmypid()函数跟踪它,该函数在每个请求时返回不同的值,但仅限于有限的集合。另外,apc_cache_info()给了我在该进程中创建的所有upload_ *条目。因此,当上载最初由一个PHP进程捕获时,所有进度更新也必须从同一进程获取,因为APC缓存信息似乎不会在处理该域/虚拟主机的多个进程之间共享。但这是不可能的,因为PHP有​​自己的负载管理,并通过任意进程为每个请求提供服务。

     

简而言之:当使用FastCGI和多个PHP进程时(出于性能原因推荐),您无法使用APC上传跟踪。每过几次请求,您才会获得状态更新。

我正在使用FastCGI所以假设这是问题吗?我甚至从未认为这是托管问题!