2008-09-30 96 views

回答

6

Memcache是​​一个强大的分布式缓存,但是对于某些内容来说速度并不比本地缓存快。缓存应该可以避免瓶颈,通常是数据库请求和网络请求。如果您可以将整个页面缓存在HTML本地,因为它不会经常更改(不是很动态),那么您的Web服务器可以比查询内存缓存更快地提供服务。如果您的memcache服务器(如大多数memcached服务器)位于单独的计算机上,则情况尤其如此。

翻转这一点是我有时会在本地使用memcache而不是其他缓存选项,因为我知道有一天我需要将它移到它自己的服务器上。

10

如果您的应用程序能够快速处理所有请求,请不要使用memcached。在编写应用程序时,添加memcached会带来额外的精神负担,因此除非需要,否则不要这样做。

Scaling的“one swell problem to have”。

+2

+1。关闭w/memcached启动新应用程序是过早优化。不要从一开始就添加不必要的复杂性! – 2008-09-30 18:02:56

+0

@Matt - 有时你只知道你的应用程序需要扩展多少,并且需要缓存。从头开始添加memcached(或任何分布式缓存)并不总是*过早优化。 – DanSingerman 2009-04-01 22:40:49

0

当您想要对过期的事物进行细粒度控制时。从我的测试中,memcached似乎只有大约一秒的时间分辨率。 EG:如果你告诉某些东西在1秒内到期,它可能会停留在1到2秒之间。

4

memcached的主要好处是它是一个分布式的缓存。这意味着您可以生成一次,并通过多个服务器的缓存提​​供服务(这就是创建memcached的原因)。以前所有的答案似乎忽略这一点 - 它使我怀疑他们是否有过建立一个高度可扩展的应用程序(这正是memcached是为)

Danga Interactive公司开发的memcached 提升 速度LiveJournal.com,一个网站是 已经做了2000万+动态页面 每天100万用户与 一堆web服务器和一堆 数据库服务器。 memcached下降了 数据库加载到几乎没有, 产生更快的页面加载时间为 用户,更好的资源利用率, 和更快地访问数据库 memcache未命中。

(我的粗体)

所以答案是:如果你的应用是永远只可能被部署在一台服务器上。

如果您有可能使用多个服务器(对于可伸缩性和冗余性),memcached(几乎)总是一个好主意。

相关问题