如何正确使用/插入Redis与Rails?

时间:2014-02-07 14:00:55

标签: ruby-on-rails ruby performance redis

我有一个Rails应用程序,我想连接到Redis数据结构服务器。我想知道我该怎么做。我正在使用位于$redis的全局变量config/initializers/redis.rb来对整个应用程序进行查询。

我认为这种方法不适合具有80+同时连接的应用程序,因为它使用一个单一的全局变量来处理Redis连接。

我该怎么做才能解决这个问题?我错过了关于Rails内部的一些内容吗?

教程我正在关注 http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html

1 个答案:

答案 0 :(得分:3)

这取决于您将使用的应用程序服务器。如果您使用Unicorn这是一个受欢迎的选择,那么您应该没问题。

Unicorn分叉它的工作人员,每个人都会建立自己的数据库连接。而且由于每个工作人员一次只能处理一个请求,因此一次只需要一个连接。添加更多连接不会提高性能,只会打开更多(无用)连接。

ActiveRecord(它是Rails的DB部分)或DataMapper支持connection pooling,它是克服您提到的问题的常用解决方案。但是在线程环境中连接池only make sense

除此之外,Redis主要是单线程(搜索“Redis的单线程特性”),因此无论如何都可能没有优势。有an request to add connection pooling但它已关闭,您可能会从那里获得更多信息。