memcached加速了什么类型的网站

时间:2010-03-27 05:56:54

标签: performance apache memcached nginx

我已阅读有关400% boost of your website的这篇文章。这是通过nginx和memcached的组合完成的。这个网站的操作方法非常好,但我错误地说它适用于哪种类型的网站。

我知道nginx是一个http引擎,我不需要解释。

我认为memcached与缓存数据库结果有关。但是我不明白这与http请求有什么关系,有人可以向我解释一下。

我的另一个问题是使用了哪种类型的网站。我有一个网站,网站的重要部分包含经常变化的数据。通常是分钟。

这种方法是否仍然适用于我,或者我应该坚持使用apache的基本无聊设置而不是别的。

2 个答案:

答案 0 :(得分:1)

来自memcached FAQ

  

为您的。添加memcached支持   应用程序可以做很多工作。   MySQL具有方便的查询缓存功能   这将自动缓存   你的SQL查询的结果   它们在重复运行时更快。怎么样   memcached与此相比吗?   MySQL的查询缓存是集中的,所以   所有服务器都可以看到它的好处   连接到它。

     
      
  • 修改表后,MySQL的查询缓存会立即刷新。你可以存储
      最低金额的memcached项目   时间,但如果你得到很多   写流量,MySQL的查询缓存
      将不断到期全部   条目

  •   
  • MySQL的查询缓存存在许多CPU的可伸缩性问题。它增加了一个   全局锁定,并且因为它变慢   必须刷新更多查询。

  •   
  • 您无法将任意数据对象存储到缓存中。你可以建立   更有效的缓存与   memcached的。分别运行几个   查询构建用户对象,构建   用户对象,然后缓存。
      MySQL的查询缓存可以帮助小   网站,但弊大于利   在规模上。

  •   
  • 内存仅限于您在数据库中拥有多少备用RAM。这是
      更好地为您的数据库提供更多   RAM缓存数据:)使用memcached
      无论在哪里,你都可以展开集群   你有多余的记忆,所以你可以   缓存更多。

  •   

答案 1 :(得分:1)

memcached是通用内存数据缓存。它可能最常用于缓存数据库对象,但它可以完成大量其他任务。

您链接的特定文章描述了如何使用nginx代替通常用于Rails Web框架的Mongrel httpd。 memcached用于缓存使用查询字符串生成动态内容的动态页面的结果;在这个特定的用例中,每次页面都会生成相同的查询字符串相同的结果,因此只需绕过appserver生成并在memcached中缓存呈现的HTML,就可以获得显着的性能提升。

尽管标题有些过于夸张,但文章并未提供适用于所有(甚至大多数)动态网页的用例。但是,如果您的页面需要大量计算并为所有用户返回相同参数的相同参数(公共搜索结果就是一个很好的示例),此解决方案将为您带来显着的性能提升。