PHP APC作为本地对象存储有除存储大小之外的任何限制吗?

时间:2012-04-23 12:36:22

标签: php apc

我在Web服务的生产服务器上使用PHP APC,并且很长一段时间内成功获得了10M的点击量。

我正在考虑将更多数据卸载到APC本地缓存中。

理论上它在我看来,因为APC调用主要是本地内存访问。称它为10,000次/秒不应该成为一个问题。据我所知,它的限制可以在内存大小上,但只要服务器有空闲CPU,它就不应该有高性能或腐败问题。

是否有任何我不知道的限制可能会阻止我在应用服务器(ubuntu)上以非常高的速率使用APC的本地对象缓存。

更新: 显然根据下面的答案,我的问题不明确。我不是在寻找替代缓存选项(memcache,redis等......)。我的问题是,在非常高的速率下使用本地APC是否存在任何问题或限制,并阅读并发性。

1 个答案:

答案 0 :(得分:4)

我个人非常喜欢将memcached用于此类存储。它有几个优点:

  • 这是一个完全专注于存储的程序,memcached的开发将始终专注于此。 APC主要是代码缓存,恰好可以提供对用户存储的一些访问。
  • 当您重新加载或重新启动Apache(或您使用的任何网络服务器)时,APC的缓存会被清空。使用独立解决方案(如memcached)时,可以控制缓存何时清空。在我的情况下,这确实非常重要,因为我有时不得不对Apache的配置进行更改,并且在我这样做时真的不想清除缓存,因为它会产生大的CPU峰值(再次将数据加载到缓存中) )。
  • 它可以创建分布式缓存,使其更具可扩展性。当您因为网站变大而必须添加第二台服务器时,您不需要两个缓存相同内容的缓存。 memcached很好地扩展,而APC的缓存没有。

在APC的用户缓存上使用memcached还有许多其他优点,但对我来说,这些是不使用APC用户缓存的三个主要原因。我当然使用APC,而不是用户缓存。