Memcached的基本经验法则是:如果要运行多个服务器或连接到同一资产的多个数据库,请使用它。
另一种更严厉的说法是:如果你不知道Memcached是什么,你可能不需要它
由于您只有一台服务器(可能还有一个数据库),因此无法利用几个Memcached功能。
Memcached(内存缓存):Distributed 内存对象缓存
APC:字节码优化
您可以使用APC和Memcached的组合,也可以将APC与Batchache一起使用,而不使用Memcached或各种插件组合,所以这有点混乱。
To clarify Batcache
Batcache能够支持Memcached,但如果没有安装Memcached,它仍将使用配置中定义的WordPress对象缓存。php使用
define(\'WP_CACHE\', true);
因此,APC将利用这一点。
除了通过Memcached支持复杂的服务器设置外,Batcache的一个优点是它不写入文件,这就是为什么像WordPress这样的服务。com使用它。想象一下,如果他们必须对所有站点进行静态缓存,那么将有数十亿个文件,无法通过文件I/O进行管理。
虽然Batchache相当简单,但执行可能很复杂,可以通过以下注释进行配置:http://plugins.trac.wordpress.org/browser/batcache/trunk/advanced-cache.php
To clarify Memcached
Memcached实际上是针对多个服务器的,因此它们可以智能地共享和使用内存,本质上它们将共享一个虚拟内存池。每个节点都可以利用其他节点的内存(节点不必是传统的web服务器)。Memcache不关心您使用的语言,因为它支持大多数语言。
http://memcached.org/aboutTo clarify APC
简单来说,APC是单服务器和PHP。它将所有基于PHP(字节码)的编译存储在RAM中。
For a single server
APC+Mark Jaquith的Dropin+静态文件缓存插件(超级缓存、w3 total等)将快速获得结果。换言之,SAPC+静态缓存在单个服务器上的速度要比justMemcached和/或非静态缓存快得多。当然,您可以在一台服务器上组合它们,我从未尝试过,很怀疑是否会有任何改进。在一台已经有APC的服务器上使用Memcached就像是试图将一辆车从前面拖到后面。
另一种选择是使用APC+Batchache而不是静态cachingplugin,这很可能会给您相同的结果,只是确保您有足够的ram。这是一个很好的解决方案,但它需要更多的服务器监控(imo),而不仅仅是编写静态文件,因为服务器仍然是挑剔的野兽。
如果在执行上述操作后,您的站点仍然存在问题,那么您需要将硬件提升到一个新的水平,或者开始考虑使用多个服务器进行更复杂的设置。
还要记住,这不仅仅是关于一般站点的“速度”,而是关于速度+并发性。
不要为了它而优化。。除非有需求,否则优化将一事无成。
Notes:
每个服务器的设置都是不同的,缓存直接与CPU、RAM、实际代码和配置的性能联系在一起,因此结果会有所不同。。。APC和Memcached都有很多配置选项。
需要注意的是https://github.com/zendtech/ZendOptimizerPlus 可能最终会取代APC。
另外,在上线之前,在dev服务器上测试APC,它通常需要修改配置,否则服务器可能会崩溃。