caching - Memcache,APC,XCache和我未曾听说过的其他替代方案之间的区别

标签 caching memcached apc xcache

在工作中,我们最近开始为我“大规模”设计一个应用程序(我们正在努力设计每天提供数百万次点击的潜力)。其中一位高级开发人员和sysadmin已在服务器上设置了内存缓存。

据我了解,Memcache会将查询结果和某些表保存在内存中X倍的时间,并使所有内容保持正常状态。

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  

不是主要问题,但顺带一提,如果您已经能够在Snow Leopard上为MAMP 1.9编译Memcache,请告诉我诀窍。

我的主要问题是有关各种Web缓存技术之间的区别是什么。我已经提到过Memcache,APC和Xcache(在这里:Cache results of a mysql query manually to a txt file),但是不知道它们之间的优缺点。

在我看来,Memcache的优势在于是该项目的主要开发人员和我们的sysadmin选择的。它具有劣势的缺点,即被foobar尝试在Mac上进行设置和编译。 :-^)

我希望听到任何人都可以列举每种机器技术(甚至其中一种)的利弊的任何人。它们在哪里使用得最好,如何最好使用。等等。

我认为这都是有用的信息。

非常感谢您抽出宝贵的时间来扩展我的知识。
-亚历克斯

最佳答案

首先,列出opcode cachers for php

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

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

我通常选择APC作为操作码缓存器(据说它将包含在PHP 6的核心中)。但是,如果该站点也有多个Web服务器,则我还将使用MemcacheD。

编辑1 我同意在MAMP上设置APC,Memcache非常烦人。但是,那里有一些有关此类的教程。

编辑2 同样,针对您的应用的最佳操作码Cacher确实取决于您使用的服务器。有些在某些系统上可以更好地工作。它还取决于应用程序的大小和规模以及缓存的性能。

编辑3 关于比较几个不同的缓存器性能的非常有趣的article here。 (本文似乎写于2006年,不应真正用作当前引用)

关于caching - Memcache,APC,XCache和我未曾听说过的其他替代方案之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692488/

相关文章:

php - 如何使用 memcached 提高我的社交网站的性能?

c++ - Memcached 是还是不是? (c++)

php - APC 的 ZF2 PHP5.5 缓存存储替代品

php - Apache 2.2.14 + php_apc.dll 崩溃

c++ - 预先计算数据与顺序处理

apache - Apache mod_cache:根据cookie值改变缓存

amazon-ec2 - 将 memcached 和 beanstalk 绑定(bind)到 EC2 实例上的外部 IP

java - 基于日期的ehcache

amazon-web-services - 在两个 aws lambda 函数之间共享变量

debian - 如何在 debian 上安装 apcu 作为 php7 扩展