4

假设一个 MySQL 数据存储,你什么时候不想在 Ruby on Rails 应用程序中使用 memcached?

4

4 回答 4

10

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

缩放的“一大难题”。

于 2008-09-30T16:42:46.340 回答
6

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

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

于 2008-09-30T17:56:33.057 回答
4

memcached 的主要好处是它是一个分布式缓存。这意味着您可以生成一次,并从多个服务器的缓存中提供服务(这就是创建 memcached 的原因)。之前的所有答案似乎都忽略了这一点——这让我想知道他们是否曾经必须构建一个高度可扩展的应用程序(这正是 memcached 的用途)

Danga Interactive 开发了 memcached 来提高 LiveJournal.com 的速度,该网站已经为 100 万用户提供了每天超过 2000 万次动态页面浏览量, 拥有一堆网络服务器和一堆数据库服务器。memcached 将数据库负载降低到几乎为零,从而为用户提供更快的页面加载时间、更好的资源利用率以及在 memcache 未命中时更快地访问数据库。

(我的粗体字)

所以答案是:如果您的应用程序只可能部署在单个服务器上。

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

于 2009-04-01T22:39:32.703 回答
0

当您想对过期的事物进行细粒度控制时。根据我的测试,memcached 似乎只有大约一秒的时间分辨率。

EG:如果你告诉某个东西在 1 秒后过期,它可能会停留 1 到 2 秒多一点。

于 2008-10-01T00:58:35.397 回答