一个Rails应用能否使用多个Redis实例?

4

我们在Heroku上运行了一个Ruby on Rails应用程序,使用Redis执行多个独立的功能,例如通过redis-store缓存各种内容,托管Resque队列和临时数据存储。我们正在快速扩展,并最近从RedisToGo切换到我们自己托管的EC2实例。但是我们的内存和连接使用仍在增长。Rails应用程序是否可以为不同的目的与不同的Redis实例建立连接?

1个回答

3

是的,可以。

这在一定程度上取决于您如何连接和使用redis。但是没有任何阻止Rails应用程序打开尽可能多的连接到尽可能多的redis服务器。如果您将从多个服务器连接到一个redis实例,则建议您查看connection_pool gem--它将帮助同步所有线程,并防止您用客户端压倒服务器。


我们正在使用"redis"和"redis-store"宝石。我刚刚更深入地研究了一下,我想我知道该怎么做了。在/config/initializers/redis.rb中,我们执行$redis = Redis.new(<从REDISTOGO_URL环境变量或redis.yml中提取的URI>)。然后我们在整个应用程序中调用$redis.some_function。但显然我们可以随时调用Redis.new来使用不同的连接。 - Bob Gale
是的,那就是你该这么做的。 - Veraticus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接