2011-10-12 39 views
17

Tôi đã thêm một tiện ích bổ sung nano Redistogo trên Heroku và tôi đã thử nghiệm nó trong bảng điều khiển thành công. Tuy nhiên khi ứng dụng của tôi cố gắng kết nối với Redis tôi nhận được lỗi sau:Làm thế nào để Redis bắt đầu trên Heroku?

Heroku Log file:

2011-10-12T08:19:50+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - Unable to connect to Redis on 127.0.0.1:6379): 
2011-10-12T08:19:50+00:00 app[web.1]: app/controllers/sessions_controller.rb:14:in `create' 

Tại sao nó cố gắng truy cập Redis trên localhost?

Redis.rb của tôi trong thư mục cấu hình/initializers có điều này, mà gần như chắc chắn là vấn đề.

#What's pasted below is pasted ad verbatim. I don't know what to change the values to. 

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

Tôi đoán ENV ["REDISTOGO_URL"] là localhost? Hãy thử sử dụng địa chỉ tên miền heroku cho biến này trong quá trình sản xuất. –

+1

Thiết lập Heroku REDISTOGO_URL cho bạn khi bạn thêm tiện ích để làm phép quay lại để chuyển URL mẫu –

+2

Nếu nó đặt URL, tại sao nó sẽ cố gắng lưu trữ cục bộ? – Simpleton

Trả lời

21

Bạn đang sử dụng Resque? Nếu vậy, bạn cần phải cho Resque biết Redis sẽ sử dụng cái gì.

Resque.redis = REDIS 

Nếu không, thì mã bạn đã đăng không được thiết lập kết nối REDIS của bạn.

+1

BTW, bạn có thể thêm dòng này vào cuối tệp khởi tạo được hiển thị trong câu hỏi hoặc bạn chỉ có thể thay thế biến '' 'REDIS''' bằng' '' Resque.redis''' trong trình khởi tạo cho mọi thứ làm việc. – fholgado

+1

mega ngón tay cái lên. đây là giải pháp cho vấn đề của tôi. kỳ lạ của nó vì tôi đã sử dụng ENV ["REDISTOGO_URL"] chứ không phải ENV ["my_actual_url_from_heroku"] ​​và nó hoạt động trong heroku – Sasha

6

Hãy thử điều này:

heroku config --long | grep REDIS 

để xem những gì REDISTOGO_URL của bạn. Bạn có thể đã vô tình đặt nó.

+2

Hãy thử để cho Redis gem đối phó với URL của bạn: 'Redis.connect (: url => ENV ['REDISTOGO_URL']) ' – Jonathan

+0

cảm ơn bạn. dòng của bạn đã cho tôi cảm hứng để ... không viết một cái gì đó rõ ràng trong ENV ["REDISTOGO_URL"] – Sasha

Các vấn đề liên quan