【问题标题】:Using Redis with Ruby on Rails在 Ruby on Rails 中使用 Redis
【发布时间】:2013-10-27 22:26:47
【问题描述】:

我开发了一个 Rails 应用程序,我在其中使用了一个模型,学生。学生人数相当多,大约10,000人。因此,当我使用这样的 json 调用时:

students.json?subject_id=4

或者做一些这样的查询:

@student = Student.all(:subject_id => 4)

这需要相当长的时间,从 2 到 4 秒。所以我这里想用 Redis 把学生存储在 Redis 中,因为我觉得这样可以把这个搜索时间减少到毫秒级。

其实我以前从来没有用过Redis。我知道我必须重写学生模型和控制器才能使用 Redis。作为 Redis 的绝对初学者,我在问我将如何解决这个问题。另外,如果我的理解有误,请澄清。提前致谢。

【问题讨论】:

  • 您可以尝试使用github.com/soveran/ohm作为ODM替代ActiveRecord。
  • 但是我在这里使用 DataMapper 作为 ORM,所以你能建议我如何将它与 Redis 一起使用还是不可能?
  • 您是否在 subject_id 字段上添加了索引?它可以加快您的查询速度。
  • 是的,我已经添加了,即使在那之后它也需要很多时间。

标签: ruby-on-rails redis


【解决方案1】:

10,000 条记录并不多,我认为您应该弄清楚问题是否出在您的数据库设计中。在开发日志或控制台中查找rails的db query make,并使用sql的“explain”,看看是否使用了索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2014-01-31
    • 2015-07-08
    • 2014-07-29
    • 2014-01-12
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多