gpt4 book ai didi

ruby - 无法从 Sinatra 连接到 Redis

转载 作者:IT王子 更新时间:2023-10-29 06:01:23 27 4
gpt4 key购买 nike

我正在尝试将 redis 连接到我正在构建的 Sinatra 应用程序:

require 'rubygems'
require 'sinatra'
#require 'sinatra/synchrony'
require 'redis'
require 'mongo_mapper'

require './startup'

def stats_connect
uri = URI.parse('redis://redistogo:xxxxxxxxxxxxxxxxxx@barb.redistogo.com: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”:无法分配请求的地址 - connect(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:in `rescue in establish_connection':超时连接到 Redis barb.redistogo.com:0 (Redis::CannotConnectError)

如果我进入 IRB,需要 redis 并使用我创建的完全相同的 stats_connect() 方法,redis 工作正常,我可以访问所有内容并创建 key 。

这是怎么回事?我完全被难住了。

最佳答案

你确定你的redis运行在barb.redistogo.com:1337上吗?几周前,我使用 redis 向 heroku 部署了一个应用程序,并使用了以下配置:

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

为了在本地运行它,我做了:

redis = Redis.new(:host => "localhost", :port => 6379)

关于ruby - 无法从 Sinatra 连接到 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255327/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com