Memcache,APC,XCache和其他我没有听说过的替代品之间的区别

Ale*_*x C 21 memcached caching apc xcache

在工作中,我们最近开始为我设计一个"大规模"的应用程序(我们正在设计为每天提供数百万次点击的潜力).其中一个高级开发人员和系统管理员已在服务器上设置了memcache.

据我了解,Memcache将在内存中保存查询结果和某些表格的X时间,并保持一切hunky dory.

memcache的一个缺点似乎是我无法为我的生活设法在我的本地开发环境中设置它.我已经遵循了一些关于如何为自己编译它的不同指导.大多数,如果不是所有步骤似乎都正常工作但在PHPLoad上出现此错误:

 [11-Sep-2010 16:02:30] PHP Warning:  PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so' - dlopen(/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcached.so, 9): image not found in Unknown on line 0  
Run Code Online (Sandbox Code Playgroud)

不是主要的问题,但是,如果你已经能够在Snow Leopard上为MAMP 1.9编译Memcache,请告诉我这个技巧.

我的主要问题是各种Web缓存技术之间的差异.我已经看到提到Memcache,APC和Xcache(这里:手动将mysql查询的结果缓存到txt文件)但不知道每个之间的优缺点和差异.

在我看来,Memcache的优势在于该项目的主要开发者和我们的系统管理员选择的那个.它的缺点是在Mac上尝试设置和编译是完全没法的.- ^)

任何能够列举其他(甚至是其中一种)其他cachine技术的利弊的人都希望听到的任何人.它们最适合使用的地方,如何最好地使用它们.等等.

这是我认为的所有有用信息.

非常感谢您花时间扩展我的知识. - 亚历克斯

bug*_*com 32

首先,php的操作码cachers列表.

第二个Memcache/MemcacheD不是Opcode Cacher.它是一个分布式内存缓存系统.它不会提高PHP代码的速度/性能.它只能用于存储数据.

APC,EAccelerator,XCache和其他都是非分布式的,这意味着您只能在本地Web服务器上存储数据.但是所有这些都是操作码cachers,可以提高PHP应用程序的性能.大多数,不包括EAccelerator(在当前版本中)也可以存储数据.

我通常选择APC作为操作码cacher(据报道它将被包含在PHP 6的核心中).但是,如果我还有多个网站服务器,我也会使用MemcacheD.


编辑1我同意在MAMP上设置APC,Memcache非常烦人.然而,有一些教程处理这样的问题.


编辑2此外,关于您的应用程序的最佳操作码Cacher真的取决于您使用的服务器.有些系统可以更好地工作.它还取决于您的应用程序的大小和规模,以了解cachers的表现.


编辑3 这里非常有趣的文章关于比较一些不同的cachers的性能.(这篇文章似乎写于2006年,不应该真正用于当前参考)