apc - APC 操作码缓存是否在 PHP-FPM 池/ worker 之间共享?

标签 apc php opcode-cache

互联网上有很多讨论认为在 CLI 中调用 apc_cache_clear() 不会从“web”PHP 进程中清除操作码缓存,无论它们是在 Apache 中运行还是由 FPM 运行(参见 How to clear APC cache entries?) .作为建议的解决方案,可以创建一个调用 apc_cache_clear() 的简单 PHP 页面,并从 CLI 调用它。 Symfony's ApcBundle这样做。

如果来自 CLI 的 apc_cache_clear() 没有清空 Apache/FPM 的缓存,它是否在 FPM worker 之间清空?如果我通过 HTTP 调用/clear_apc_cache.php,它仅由 FPM 工作进程之一运行。那么,APC 操作码缓存是否真的在池和工作人员之间共享 - 更具体地说:它是否自动从所有工作人员中清除?

最佳答案

所有 php-fpm worker 与父 php-fpm 进程共享相同的操作码缓存; source .如果您有一个/apc_clear_cache.php 文件并通过 HTTP 调用它(使用类似 curl 的东西),您将清除所有使用相同 php-fpm 主进程的工作人员的操作码缓存。

这个 blog article对 apc 的工作原理以及如何在发布期间有效地清除它有很好的解释。

关于apc - APC 操作码缓存是否在 PHP-FPM 池/ worker 之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12860487/

相关文章:

php - 如何将 apk 3.1.12 还原到 3.1.11

php - Apache 2.2.14 + php_apc.dll 崩溃

apache - 我应该为我的 VPS 使用 FastCGI 还是 SuPHP?

php - 将 APC 与 MAMP 结合使用

wordpress - 优化APC缓存

php - 使用 PHP 导出为 CSV 并显示超链接单元格

php 代码应该将我的数据库中的内容打印到模板中

php - 按 MySQL 中的条目数量排序

APC 命中/未命中和配置