完全替代用于PHP的APC用户数据缓存


Full alternative to APC user data cache for PHP?

我有一个严重依赖APC的大型站点,主要使用apc_addapc_fetch函数存储自定义数据。

APC 似乎与 PHP 5.4 并不完全兼容,而 PHP 5.5 已经内置了 Zend OPcache。我有什么替代方法来替换apc_add和apc_fetch功能?

请不要提到memcached,我已经在使用它,但它不适合直接替代APC,因为我正在做很多apc_fetch调用,因为APC为此目的比memcached快得多。

感谢您的任何建议和帮助。

编辑:我认为,建议APCu是不错的选择,但是它在稳定性方面存在相同的问题(PHP段错误)...还有其他替代方法如何存储本地用户缓存数据吗?

有APCu,APC用户缓存:http://pecl.php.net/package/APCu

它仅包含用户缓存部分,具有apcu_*函数而不是apc_*函数。

YAC 是另一种选择(https://github.com/laruence/yac)。 它是无锁的,可能导致:

  1. 更好的性能
  2. 在某些情况下获取意外数据

如果您的应用程序可以容忍 (2) 或以不成问题的方式构建,那么 YAC 似乎是一个不错的选择。

APC用户缓存适用于高负载环境? 也有关于APCu的一些问题的良好信息,以及为什么YAC可以解决其中一些问题。

在reddit上还有一个关于php缓存的有趣讨论:http://www.reddit.com/r/PHP/comments/1k2w45/the_future_of_caching_in_php/

如果有人想知道我最终做了什么 - 我现在使用 XCache。它肯定不完美 - 主要是因为它的文档非常弱(如果有的话)。但它是稳定的,维护的,并且按预期工作,所以它现在几乎是APC的良好替代品。