Redis正在寻找env redis url变量,不知道在哪里放置env变量坏URI(不是URI?):( URI :: InvalidURIError)

我对redis很新。 这个rails应用程序在config / initializers中有一个redis.rb文件

uri = URI.parse(ENV["REDIS_URL"]) $redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) 

redis url在heroku配置上。

我不能用REDIS_URL配置中的REDIS_URL替换REDIS_URL

我收到URI解析错误

  bad URI(is not URI?): (URI::InvalidURIError) 

我的问题是我应该在哪里放置redisurl? 在哪里搜索env变量?

我猜你在做耙子的时候会得到这个。 问题是,在进行rake时,未设置环境变量,这会导致此错误( https://devcenter.heroku.com/articles/rails-asset-pipeline上的信息)。 要克服,请使用条件初始化程序,例如:

 if ENV["REDISCLOUD_URL"] uri = URI.parse(ENV["REDISCLOUD_URL"]) $redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password) end 

PS或者,使用这个,但请注意,根据Heroku:

使用此实验室function被认为与Heroku最佳实践背道而驰。 此实验室function可以使您的构建更具确定性,并且在进行配置更改后需要重新部署。 理想情况下,您的应用应该能够无需配置即可构建。