gpt4 book ai didi

ruby-on-rails - 将redis部署到heroku无法连接

转载 作者:IT王子 更新时间:2023-10-29 05:54:43 25 4
gpt4 key购买 nike

我一直在尝试重新使用 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):

我把我的 initializers/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)

但是它抛出了上面提到的错误。现在在我的开发模式下,我也遇到了错误。

我尝试使用我的 heroku 用户名(我使用 heroku 的附加组件),将我的密码输入 heroku,并将端口更改为 9254。但是我现在一直收到套接字错误。我做错了什么?

帮助将不胜感激。谢谢

更新。

@凯文

我试过了

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

也在 initializer/redis.rb 中,但我收到以下错误

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

错误中的数字是否有意义,即 127.0.0.1:6379?我检查了我的 redis 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

逐字逐句。它在没有明确设置 url 的情况下工作,因为我猜 heroku 已经尝试为我设置它

最佳答案

对于我的设置,我有 /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 的值

您应该直接从 Redis To Go 复制您的 REDISTOGO_URL。您可以通过转到 heroku 中的实例并单击 Add Ons -> Redis To Go 来找到它。

这里有一些提示:

  1. 像我上面演示的那样,从命令行验证您的 heroku 配置中是否有 REDIS_TO_GO URL。
  2. 验证 REDIS_TO_GO URL 与在 Add Ons -> Redis To Go 配置中分配给该实例的 URL 相同。

关于ruby-on-rails - 将redis部署到heroku无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10661026/

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