无法连接到 heroku 上的 redis

Can't connect to redis on heroku

我在 rails 应用程序中将 sidekiq 与 active_job 一起使用。该工作目前有效,但在部署到 heroku 时我无法连接到 Redis。在 heroku 中,我有 RedisToGo 插件。推送到 heroku 时出现以下错误。

错误

/app/vendor/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:331:in `rescue in establish_connection': Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)

config/application.rb

config.after_initialize do
  PasswordAgingJob.perform_later
  SetOffCallJob.perform_later
end

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/initializers/active_job.rb

ActiveJob::Base.queue_adapter = :sidekiq

您必须在 Heroku 上设置 REDISTOGO_URL

单击设置,然后单击显示配置变量

REDIS_PROVIDER 设置为您的 Redis URL 环境变量的名称。

输入:heroku config:set REDIS_PROVIDER=REDISTOGO_URL。重启。

此处解释:https://github.com/mperham/sidekiq/wiki/Using-Redis#using-an-env-variable

heroku 配置中设置 REDIS_URL 帮助我解决:

Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) (Redis::CannotConnectError)

将 REDIS_URL 设置为 redis://@pike.redistogo.com:10731/ 似乎对我有用。