我已阅读有关400% boost of your website的这篇文章。这是通过nginx和memcached的组合完成的。这个网站的操作方法非常好,但我错误地说它适用于哪种类型的网站。
我知道nginx是一个http引擎,我不需要解释。
我认为memcached与缓存数据库结果有关。但是我不明白这与http请求有什么关系,有人可以向我解释一下。
我的另一个问题是使用了哪种类型的网站。我有一个网站,网站的重要部分包含经常变化的数据。通常是分钟。
这种方法是否仍然适用于我,或者我应该坚持使用apache的基本无聊设置而不是别的。
答案 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,就可以获得显着的性能提升。
尽管标题有些过于夸张,但文章并未提供适用于所有(甚至大多数)动态网页的用例。但是,如果您的页面需要大量计算并为所有用户返回相同参数的相同参数(公共搜索结果就是一个很好的示例),此解决方案将为您带来显着的性能提升。