PHP:使用APC作为通用缓存,XCache作为opcache,可能吗?

时间:2009-10-19 08:00:45

标签: php apc xcache

我真的对APC的常规缓存方面感到厌倦,并希望在我的代码中使用它(我知道该怎么做,这是问题)。

但是,我现在正在使用XCache作为opcache,并希望继续这样做,因为我已根据我的特殊需要调整“恰到好处”。

我想将APC缓存用作通用缓存的原因是我对Pear的PEAR :: Cache_Lite在使用它进行变量缓存方面不满意,因为它将它存储在磁盘上,而磁盘I / O是瓶颈而RAM不是,APC将变量存储在RAM中,而不是存储在磁盘上的文件中。

所以,任何人都有经验或知道是否可以将APC设置为仅作为常规缓存运行(通过我的PHP代码中的API调用,类似于PEAR :: Cache_Lite),同时我维护另一个opcache(就我而言,xcache)。

感谢。

5 个答案:

答案 0 :(得分:5)

Xcache也可以作为常规缓存。就像APC一样。只需使用Xcache!

mixed xcache_get(string name)
bool  xcache_set(string name, mixed value [, int ttl])
bool  xcache_isset(string name)
bool  xcache_unset(string name)
bool  xcache_unset_by_prefix(string prefix)
int   xcache_inc(string name [, int value [, int ttl]])
int   xcache_dec(string name [, int value [, int ttl]])

Here is the API

答案 1 :(得分:4)

如果apc.cache_by_default关闭且apc.filters与任何内容都不匹配,APC将不会缓存PHP文件。

在你的配置中:

apc.cache_by_default = Off

http://www.php.net/manual/en/apc.configuration.php#ini.apc.cache-by-default

答案 2 :(得分:1)

您可以使用两个缓存,但它们在功能方面都重叠。理想情况下,您应该将APC配置为仅缓存文件,将XCache配置为OPCache。请检查以下comparison of features

Comparison of features for PHP accelerators such as APC, eAccelerator, XCache, Zend Opcache

对于PHP> = 5.5 APC已停止使用,因此您应该使用XCache或Zend Opcache作为缓存的主要PHP加速器。

答案 3 :(得分:0)

运行时配置设置具有以下内容:

apc.optimization 0 “优化级别.Zone禁用优化器,更高的值使用更积极的优化。期望非常适度的速度改进。这是实验性的。”

http://www.php.net/manual/en/apc.configuration.php#ini.apc.enabled

答案 4 :(得分:0)

让两个缓存试图同时运行是不可能的。他们会试图挂钩到同一个系统。选择一个。

现在遵循您不使用的其他技术的标准插件:

从技术上讲,速度方面,其中并不多,尽管我已经看到APC在包含文件方面做得更好的报道,尤其是自动加载等技术(例如,使用Zend_loader)。 APC确实易于访问(pecl install ...),它是一个'更官方'的PHP项目,然后是另一个缓存系统。

我已经使用APC对标准操作码以及大量变量产生了很大的影响,TTL范围从30秒(现在有多少人在线)到24小时或更长时间(数据库表元 - 信息)。