2012-10-04 143 views
1

我正在嘗試使用redis存儲作爲我在heroku上的會話存儲。它在開發中工作正常,但我無法在heroku上獲得redis連接。它試圖連接到127.0.0.1而不是正確的redis服務器。heroku上的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> 

任何幫助將非常感激。謝謝。

回答

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' 
+3

你也可以使用':redis_server'作爲參數。只是不'':服務器' –

+0

前一段時間得到了這個工作,你說得對你的評論。我使用redis_server,GrnAuth :: Application.config.session_store:redis_store,:redis_server => APP_CONFIG ['redis_server'],鍵:'_grn_session' – SuddenlyAwakened

相關問題