Redis适用于控制台,但在应用程序中失败

时间:2013-01-17 02:11:08

标签: ruby-on-rails heroku redis redistogo

我在Heroku上托管的RoR应用程序中使用带有split gem的Redis。

我使用以下代码使用RedisToGo进行配置:

/config/initializers/redis.rb

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379/" )
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

/config/application.rb

config.gem 'redis' 

当我尝试

REDIS.set("foo","bar")

在Heroku控制台上,它运行正常。它显示了Redis ToGo地址。

但是,当我尝试加载应用程序时,我收到以下错误:

Errno::ECONNREFUSED: Connection refused - Unable to connect to Redis on localhost:6379

Howcome REDIS正确响应,Heroku控制台中的地址正确,但是当应用程序调用它时会显示localhost地址吗?

1 个答案:

答案 0 :(得分:0)

我能够解决它,我会让解决方案注册:

我没有初始化Split.redis,因此它尝试创建一个默认的Redis,其中localhost作为主机。

所以我创建了以下初始值设定项

<强> /config/initializers/split.rb

Split.redis = REDIS

然后斯普利特可以找到它!