同时运行 APC 和 memcached 有什么意义吗

同时运行 APC 和 memcached 有什么意义吗

APC 和 Memcached 缓存的数据相同吗?我理解 APC 缓存文件和对象/变量,而 memcached 只缓存对象,但 memcached 是否提供了 APC 所不具备的功能?

我见过同时使用两者的设置,但这似乎是在浪费 RAM,除非我遗漏了什么?

TIA,法学博士

答案1

在单台服务器上,在两个地方缓存相同的数据没有多大意义。这将占用两倍的 RAM,却没有任何实际优势。在这种情况下,使用 APC 可能是最简单的方法,因为它可以少运行一个进程,少学习一个界面。

当您拥有整个服务器集群时,Memcache 会变得更加有用。Memcache 可由多个服务器查询(也可由同一服务器上的多个进程查询)。相比之下,APC 缓存中的数据只能由 PHP 在其自己的服务器上使用。这使得 Memcache 更加高效,因为您可以缓存数据一次并在整个集群中使用它。Memcache 本身也可以集群化,这样您就可以将来自一堆不同机器的 RAM 集中起来,并将它们全部用作一个大缓存。

我的公司同时使用 Memcache 和 APC。我们有十几台服务器运行 Memcache;这些服务器缓存复杂的数据结构,这样我们就不必一直进行数据库查询。我们还使用 APC 来存储一些经常使用的信息,比如配置设置。如果没有 APC,我们的 Memcache 服务器就会被大量简单数据的请求淹没,比如“应用程序是否处于只读模式?”我们的 Memcache 服务器可以处理它,但将这些信息保存在本地内存中显然更有效率。

相关内容