我試圖Redis的掛鉤到一個西納特拉的應用程序連接到Redis的我的建築:無法從西納特拉
require 'rubygems'
require 'sinatra'
#require 'sinatra/synchrony'
require 'redis'
require 'mongo_mapper'
require './startup'
def stats_connect
uri = URI.parse('redis://redistogo:[email protected]:1337/')
puts 'connecting to... ' + uri.to_s
redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
puts "Statistics connected >> OK" if redis
return redis
end
stats = stats_connect
post('/') do
#...
end
如果我運行工頭下面的應用程序,我得到這個錯誤:
18:09:02 web.1 |以pid開頭825
18:09:08 web.1 | /Users/vladdypwnz/.rvm/gems/ruby-1.9.2-p180/gems/redis-3.0.1/lib/redis/connection/ruby.rb:113:in `connect_nonblock':無法分配請求地址 - 連接(2) (Errno :: EADDRNOTAVAIL)
18:09:08 web.1 |從 /Users/vladdypwnz/.rvm/gems/ruby-1.9.2-p180/gems/redis-3.0.1/lib/redis/connection/ruby.rb:113:in '連接」
當我推到Heroku的,錯誤更改爲:
/app/vendor/bundle/ruby/1.9.1/gems/redis-3.0.1/lib/redis/client.rb:260:在`rescue in establish_connection'中:在barb.redistogo.com:0(Redis :: CannotConnectError)上超時連接到Redis
如果我彈入IRB,需要redis並使用相同的確切stats_connect()me我創建的方法,redis工作得很好,我可以訪問所有內容並創建密鑰。
發生了什麼事?我完全被難住了。
得到它排序 - 根據它試圖日誌與barb.redistogo.com:0相連,因爲事實證明,URI解析了端口爲零的地址。不知道爲什麼。 –