我正在使用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')
返回的值是否为空?
我错过了一些重要的东西吗?
谢谢,
答案 0 :(得分:2)
APC Fetch在GCI系统上不起作用,因为每个请求都启动了一个新线程。
答案 1 :(得分:0)
从某个地方引用
如果使用FastCGI设置PHP,则使用此功能获取有关正在运行的上载的任何信息可能会遇到麻烦。至少在我的情况下,每个HTTP请求都由不同的PHP进程处理。我可以使用getmypid()函数跟踪它,该函数在每个请求时返回不同的值,但仅限于有限的集合。另外,apc_cache_info()给了我在该进程中创建的所有upload_ *条目。因此,当上载最初由一个PHP进程捕获时,所有进度更新也必须从同一进程获取,因为APC缓存信息似乎不会在处理该域/虚拟主机的多个进程之间共享。但这是不可能的,因为PHP有自己的负载管理,并通过任意进程为每个请求提供服务。
简而言之:当使用FastCGI和多个PHP进程时(出于性能原因推荐),您无法使用APC上传跟踪。每过几次请求,您才会获得状态更新。
我正在使用FastCGI所以假设这是问题吗?我甚至从未认为这是托管问题!