【问题标题】:Can one Rails app use multiple Redis instances?一个 Rails 应用可以使用多个 Redis 实例吗?
【发布时间】:2012-12-13 11:26:18
【问题描述】:

我们在 Heroku 上有一个 Ruby on Rails 应用程序,它使用 Redis 来实现几个独立的功能——例如。通过 redis-store 缓存各种东西,托管 Resque 队列和临时数据存储。我们正在迅速扩大规模,最近从 RedisToGo 切换到我们自己的 EC2 托管实例。但是我们的内存和连接使用量仍在增长。 Rails 应用是否可以为不同的目的与不同的 Redis 实例建立连接?

【问题讨论】:

    标签: ruby-on-rails heroku redis partitioning


    【解决方案1】:

    是的。

    这在一定程度上取决于您连接(和使用)redis 的方式。但是没有什么能阻止任何 Rails 应用程序打开与您喜欢的任意数量的 redis 服务器的连接。如果您要从多台服务器连接到一个 redis 实例,我建议您查看 connection_pool gem ——它将帮助同步您的所有线程并防止您在服务器上挤满客户端。

    【讨论】:

    • 我们正在使用“redis”和“redis-store”gem。我只是更深入地研究了这些,我想我知道该怎么做。在 /config/initializers/redis.rb 中,我们执行 $redis = Redis.new( 中提取)。然后我们在整个应用程序中调用 $redis.some_function。但显然我们可以在任何地方调用 Redis.new 来使用不同的连接。
    • 是的,你就是这样做的。
    猜你喜欢
    • 1970-01-01
    • 2014-09-17
    • 2017-01-29
    • 2016-06-09
    • 2020-07-07
    • 2015-12-31
    • 2011-12-10
    • 2014-08-11
    • 2011-07-09
    相关资源
    最近更新 更多