新的APCu APC用户缓存是否在进程之间共享?

时间:2015-12-30 16:55:01

标签: php apache caching apache2 apc

我打算使用php5-apcu ubuntu软件包。

进程之间是否共享数据?换句话说,如果我在一个网站加载中设置一个缓存条目,那么另一个网站加载是否可以使用缓存条目,即使它是与另一个进程一起提供的?

这是如何工作的:

  • apache2 php prefork module
  • php5 fpm with multiple workers
  • PHP-CLI

1 个答案:

答案 0 :(得分:6)

https://github.com/krakjoe/apcu/issues/121

  

规则是只有子进程可以访问其父进程创建的内容;在FCGI中,衍生的进程不一定是其父进程的子进程,它们可能不是实际的分支。如果您的流程管理器像传统的FCGI / CGI一样工作,那么您将无法共享,如果它像FPM一样工作,并且在父级和forks子解释器中初始化PHP,那么您将没有问题。

Apache的prefork和PHP的FPM将在工作进程之间共享(通过父进程的内存空间)。

CLI不会,因为每个CLI调用都是一个单独的进程。

您可以考虑使用memcached或redis作为替代方案。