【发布时间】:2012-07-04 02:33:04
【问题描述】:
我正计划创建一个应用程序 (Rails),该应用程序将拥有大量用户 - 它会从小规模开始,但我希望它能够处理一百万或更多。
我想构建一个每秒能够处理 2500 多个请求的系统。每个请求都需要写入(用于记录目的)以及从庞大的用户列表中读取,由用户名索引(我建议为此使用 MongoDB),读取的结果将发送回用户.
我有点不清楚 mongo 将如何处理读取和写入,所以我有这样一个想法,即使用 Mongo 来永久存储记录,然后在每次服务器启动时将它们加载到 Redis 以更快地访问这样 Mongo 就不必处理任何事情,只需要写入。
这听起来合理还是对 Mongo 和 Redis 的严重滥用?
交货速度至关重要。
【问题讨论】:
-
非常大有多大(千/十亿)?你有更多关于你的数据模型的信息吗?你在记录什么?您的请求主要是阅读吗?如果没有更多信息,很难回答您的问题。
-
Redis 可以处理这种级别的请求,但您可能需要在 Rails 应用程序之前将它放在中间件中。
-
我不熟悉 Redis,但我听说很多人都在部署这种类型的解决方案,而且它似乎可以工作,所以听起来很合理。
-
lebreeze,你能告诉我更多关于这方面的信息吗? rails 应用之前的中间件?我想我应该提到我打算在heroku上部署它。可以说,“非常大”是指最多大约 500 万条记录;每个都有一个用户名和几个属性,控制器将处理这些属性来决定用户得到什么响应(响应本身也会很小 - 肯定低于 1 千字节,与记录大小大致相同。)跨度>
标签: ruby-on-rails ruby performance mongodb redis