在初始化时配置 Redis 连接

Configure Redis connection on initialize

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

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

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

谢谢

这就是 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 是导致您收到的错误的代码。