PHP "apc_store"和 "apc_fetch"未按预期工作

标签 php caching apc

我曾尝试使用 APC,但它似乎并没有像我预期的那样工作。

文件1:

$bar = 'BAR';
apc_store('foo', $bar, 3600);
var_dump(apc_fetch('foo'));           // It works here. Displays BAR

文件2:

var_dump(apc_fetch('foo'));

当我在几秒钟内执行 file2 时,它返回 false 而不是缓存中存储的数据“BAR”。

最佳答案

它工作正常 :) - 只要您记住从命令行执行的每个 php 脚本都使用它自己的缓存,所以您将无法访问 script1 在 script2 中保存的数据。 (您无法在稍后运行的 script1 中访问它,因为它会在脚本完成时被清除)

这些缓存也与您最有可能想要使用的缓存分开,即通过您的网络服务器执行的 php 脚本的缓存。

因此,如果您将上面的那些测试保存在您的 webroot 中,那么您可以访问 http://localhost/file1.php , 然后 http://localhost/file2.php

它将按预期工作。

这也意味着您无法从命令行清除网络服务器的 APC 缓存。 缓存(用户缓存或操作码缓存)清除代码必须通过您的网络服务器执行。 它是来自 shell 的 wget 还是来自 php cli 的 file_get_contents() - 这取决于您的口味和环境。

关于PHP "apc_store"和 "apc_fetch"未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092224/

相关文章:

javascript - 链接 Javascript 的 nocache

php - Symfony/PHP7 APC -> APCu

php - 在 CentOS 上使用 PHP 5.4 安装 APC(主干)

php - 限制php中获取数据的列

android - 用户离线时缓存 ListView 项

javascript - google 图表未在 php 中使用 ajax 调用显示

java - 如果集群中的第一个节点关闭,Redis 客户端 (Redission) 将停止工作

php - APC 没有加速 PHP 5.4

关联数组上的php array_sum

php - 如何使用 php 从 json 到 mysql 只插入数组中尽可能多的项目