如何控制apc.Shm_size在字节码缓存&共享内存


Control how apc.shm_size is shared between bytecode cache & shared memory

我将apc.shm_size设置为64M, php文件(字节码)的总数超过64M,并且我使用apc作为共享变量。

是否可以定义内存的大小,以便共享内存的区域独立于字节码缓存?(否则它们将很快被字节码缓存覆盖)

简单的答案是no…

我解决了使用memcache共享内存和apc字节码缓存。

对于我来说,PHP中共享变量的最佳解决方案是使用Redis。

与APC共享变量的问题是当你的应用程序在集群中扩展时,使用APC你只能在一台机器上共享数据,使用Redis你可以在整个集群中共享数据。

Redis是一个开源的键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序集合。

假设您只有一个web服务器,您可以通过为操作码和用户缓存使用不同的扩展来实现这一点。前者使用Zend OPcache,后者使用APCu。OPCache与PHP 5.5捆绑在一起,但你可以在更早的版本(最低是5.2)中安装它。