我在Heroku上托管的RoR应用程序中使用Redis与split
gem。
我已经用以下代码配置了RedisToGo:
/config/初始化/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
为什么REDIS
正确响应,在Heroku控制台有正确的地址,但当应用程序调用它时显示本地主机地址?
我能够修复它,我将让解决方案注册:
我没有初始化Split.redis
,因此它试图创建一个默认的Redis
,它将localhost作为主机。
/config/初始化/split.rb
Split.redis = REDIS
然后Split可以找到它!