Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将Redis与RubyonRails结合使用_Ruby On Rails_Redis - Fatal编程技术网

Ruby on rails 将Redis与RubyonRails结合使用

Ruby on rails 将Redis与RubyonRails结合使用,ruby-on-rails,redis,Ruby On Rails,Redis,我开发了一个Rails应用程序,其中我使用了一个模型,student。学生人数相当多,大约10000人。因此,当我使用类似这样的json调用时: students.json?subject_id=4 或者执行如下查询: @student=student.all(:subject\u id=>4) 这需要相当长的时间,从2秒到4秒。所以我想在这里使用Redis将学生存储在Redis中,因为我认为这样可以将搜索时间减少到毫秒 事实上,我以前从未使用过Redis。我知道我必须重写学生模型和控制器才能使

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

students.json?subject_id=4

或者执行如下查询:

@student=student.all(:subject\u id=>4)

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


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

10000条记录没有那么多,我认为您应该找出问题是否出在您的数据库设计中。在开发日志或控制台中查找rails生成的db查询,并使用sql的“explain”查看是否使用了索引。

您可以尝试使用作为ODM来替换ActiveRecord。但是我在这里使用DataMapper作为ORM,所以您能建议我如何将其与Redis一起使用吗?还是不可能?您是否在subject\u id字段中添加了索引?它可以加快你的查询速度。是的,我补充说,即使在那之后,也要花很多时间。