我试图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解析了端口为零的地址。不知道为什么。 –