복붙노트

[REDIS] Heroku가에 레디 스를 배포하는 것은없는 연결

REDIS

Heroku가에 레디 스를 배포하는 것은없는 연결

내가 Heroku가 함께 작동하도록 구조를 얻기 위해 노력했습니다. 나는 성공적으로 내가 얻을에게 Heroku에 밀어하려고하지만 경우, 개발 모드에서 작동하도록 얻을 수 있습니다

Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):

그때 읽고 다음 http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

나는 사이트에 나와있는 구성을 넣어하지만, 다음과 같은 오류가 발생했습니다

SocketError (getaddrinfo: nodename nor servname provided, or not known):

난 내 이니셜 라이저 / resque.rb에 넣어

Resque.after_fork = Proc.new { ActiveRecord::Base.establish_connection }

ENV["redis://redistogo:11111111111111111@lab.redistogo.com:9254/"] ||= "redis://heroku_username:heroku_password@host:9254/"
uri = URI.parse(ENV["redis://redistogo:1111111111111111@lab.redistogo.com:9254/"])
Resque.redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

그러나 그것은 위에서 언급 한 오류가 발생합니다. 내 dev 모드에 지금, 나는 오류를 얻을뿐만 아니라.

난, (메신저에게 Heroku에서의 추가를 사용하여)에게 Heroku에 암호를 넣어, 나는 이제 소켓 오류가 계속 그러나 9254. 포트를 변경 내 Heroku가 사용자 이름을 사용했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

도움이 많이 주시면 감사하겠습니다. 감사합니다

최신 정보.

@kevin

내가 시도

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

초기화 / redis.rb에서뿐만 아니라 그러나 나는 다음과 같은 오류가

Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379):

오류의 숫자는, 127.0.0.1:6379 상당한 즉? 필자는 GUI 응용 프로그램 내 레디 스를 확인하고도에게 Heroku의 설정에서 내 포트 번호는 9254입니다

REDISTOGO_URL       => redis://redistogo:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@lab.redistogo.com:9254/

당신은 다른 구성 설정을했을까요? 도와 줘서 고맙다!

최종 업데이트합니다.

그것을 고정. 나는 그것을 믿을 수 없어! 내 완벽한 솔루션입니다

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

그대로. 내가 Heroku가 이미 나를 위해 그것을 설정하려고 생각하기 때문에 명시 적으로 URL을 설정하지 않고 작동

해결법

  1. ==============================

    1.내 설치를 위해 나는이 라인 /config/initializers/redis.rb 있습니다 :

    내 설치를 위해 나는이 라인 /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)
    

    내 REDISTOGO_URL은 내 Heroku가 구성에 정의됩니다. 당신은 입력하여 그 유효성을 검사 할 수 있어야한다 :

    heroku config --app my_app
    

    당신은 출력에 REDISTOGO_URL에 대한 값을 볼 수 있습니다

    당신은 레디 스에 가서에서 직접 REDISTOGO_URL을 복사해야합니다. > 레디 스 이동을 - 당신에게 Heroku의 인스턴스로 이동하여 추가 기능을 클릭하여 그것을 찾을 수 있습니다.

    여기에 몇 가지 포인터는 다음과 같습니다

  2. ==============================

    2.그것을 고정. 나는 그것을 믿을 수 없어! 내 완벽한 솔루션입니다

    그것을 고정. 나는 그것을 믿을 수 없어! 내 완벽한 솔루션입니다

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

    그대로. 내가 Heroku가 이미 나를 위해 그것을 설정하려고 생각하기 때문에 명시 적으로 URL을 설정하지 않고 작동

  3. ==============================

    3.그래서, 기본적으로 Sidekiq이 바르에서 REDISCLOUD_URL를 잡아되지 않았다, 그것은 REDIS_PROVIDER을 잡는했다, 같은 일을 얻었다.

    그래서, 기본적으로 Sidekiq이 바르에서 REDISCLOUD_URL를 잡아되지 않았다, 그것은 REDIS_PROVIDER을 잡는했다, 같은 일을 얻었다.

    heroku config:set REDIS_PROVIDER=REDISCLOUD_URL
    

    그것이 마치 마법처럼 일했다.

  4. from https://stackoverflow.com/questions/10661026/deploying-redis-to-heroku-unable-to-connect by cc-by-sa and MIT license