ruby-on-rails - 如何正确使用/插入Redis与Rails?

标签 ruby-on-rails ruby performance redis

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

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

我应该怎么做才能解决这个问题?我是否遗漏了 Rails 内部的一些内容?

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

最佳答案

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

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

ActiveRecord(Rails 的数据库部分)或 DataMapper 支持 connection pooling这是克服您提到的问题的常见解决方案。然而连接池only make sense在线程环境中。

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

关于ruby-on-rails - 如何正确使用/插入Redis与Rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629711/

相关文章:

ruby-on-rails - 我如何使用 Vim 插入 ERB 标签?

ruby-on-rails - Hpricot CSS 类搜索

ruby - 转储 YAML 时如何强制使用双引号?

c - 优化文件写入C

sql - 为什么在更改值时查询永远需要

ruby-on-rails - rails 4 如何同时使用 where 和 where 条件

ruby-on-rails - 在 cookies.signed 与 session 中存储值的安全差异

c# - 在 Windows 10 Fall Creators Update (1709) 之后,log4net 使用调用者位置信息变得非常慢

ruby-on-rails - rails `bundle install` 尝试在系统范围内安装

ruby-on-rails - 如何将 ActiveRecord 模型数组转换为 CSV?