1

我正在尝试使用 redis 存储作为我在 heroku 上的会话存储。它在开发中运行良好,但我无法在 heroku 上获得 redis 连接。它正在尝试连接到 127.0.0.1 而不是正确的 redis 服务器。

错误:

ActionView::Template::Error (Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)):

我已将 heroku redis 配置设置为正确的服务器(不是真正用于会话存储,但已设置)

REDISTOGO_URL: redis://redistogo:################################@carp.redistogo.com:9274/

session_store.rb

GrnAuth::Application.config.session_store :redis_store, :server => APP_CONFIG['redis_server'], key: '_grn_session'

环境.rb

# Load the rails application
require File.expand_path('../application', __FILE__)
require 'yaml'
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]

# Initialize the rails application
GrnAuth::Application.initialize!

配置.yml

development:
  redis_server: redis://localhost:6379/

test:
  redis_server: redis://localhost:6379/

production:
  redis_server: redis://redistogo:################################@carp.redistogo.com:9274/

当我控制台进入 heroku 时,我可以检查APP_CONFIG['redis_server']并将其设置为 redis 服务器。

我还建立了一个 redis 连接只是为了使用它。

redis.rb

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

当我安慰 heroku 时,我可以做到以下几点

irb(main):001:0> $redis
=> #<Redis client v3.0.1 for redis://carp.redistogo.com:9274/0>

任何帮助将非常感激。谢谢你。

4

1 回答 1

3

它看起来像这样:

GrnAuth::Application.config.session_store :redis_store, :server => APP_CONFIG['redis_server'], key: '_grn_session'

应该是这样的:

GrnAuth::Application.config.session_store :redis_store, :servers => APP_CONFIG['redis_server'], key: '_grn_session'
于 2012-10-04T20:53:54.097 回答