【问题标题】:Configure Redis connection on initialize在初始化时配置 Redis 连接
【发布时间】:2016-02-04 08:22:14
【问题描述】:

我正在使用Predictor gem,当我尝试启动 gem 时:

"redis not configured! - Predictor.redis = Redis.new" (RuntimeError)

那么,如何在初始化时配置Redis Connection

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 redis


    【解决方案1】:

    这就是Redis 的一般初始化方式。

    首先,一个好的做法是将其添加到您的config/environments/[environment_name].rb。因此,您可以在更改环境时为Redis 维护不同的位置。

    config.redis_host   = "localhost"
    

    然后在您的应用程序的config/initializers 路径中创建redis.rb 并放置下面的代码来初始化Redis

    require 'redis'
    
    ## Added rescue condition if Redis connection is failed
    begin
      $redis = Redis.new(:host => Rails.configuration.redis_host, :port => 6379) 
    rescue Exception => e
      puts e
    end
    

    然后您就可以在您的应用程序中使用全局变量$redis 来执行与Redis 相关的命令。

    $redis.hset "my_hash", item.id, business.id
    

    Here 是一篇有用的文章,其中包含更多详细信息。


    现在,正如this documentation 所建议的那样,您应该这样做:

    config/initializers/predictor.rb

    Predictor.redis = Redis.new(:url => ENV["PREDICTOR_REDIS"])
    

    或者,为了提高性能,添加 hiredis 作为您的驱动程序(您需要先安装 hiredis gem)

    Predictor.redis = Redis.new(:url => ENV["PREDICTOR_REDIS"], :driver => :hiredis)
    

    然后,一定要在你想使用的所有模型中包含include Predictor::Base

    class CourseRecommender
      include Predictor::Base
      ...
    end
    

    Here 是导致您收到错误的代码。

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 2013-06-15
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多