在初始化时配置 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 是导致您收到的错误的代码。
我正在使用 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 是导致您收到的错误的代码。