我正在尝试将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'
的environment.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!
config.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>
非常感谢任何帮助。谢谢。
答案 0 :(得分: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'