我正在尝试使用 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>
任何帮助将非常感激。谢谢你。