1

如何将连接池添加到我的 Redis 设置?

出于某种原因,我似乎无法找到任何有关此的信息。我正在使用 redis (3.2.0) 设置如下:(您可以假设 resque_uri 和 cache_uri 在此 c 之前已被解析)

对于resque:

$REDIS_BACKGROUND_JOB =  Redis.new(:host => resque_uri.host, 
                                  :port => resque_uri.port, 
                                  :password => resque_uri.password)

在初始化序列的后面,我们做

Resque.redis = $REDIS_BACKGROUND_JOB

我们有第二个 Redis 实例,它具有不同的内存、连接限制和驱逐策略,用于 Rails 缓存

$REDIS_CACHE = Redis.new(:host => cache_uri.host, 
                        :port => cache_uri.port, 
                        :password => cache_uri.password)

更新 2017-02-16@20-17EST:我正在运行两个 redis 实例,一个用于 resque (1.25.2),另一个用于使用 redis-rails (5.0.1) 的缓存层。我已经更新了上面的设置示例。我怀疑初始化中配置错误或存在基本设置不匹配。

更新 2017-02-16@21-37EST:

environments/development.rb

config.cache_store = :redis_store, 'redis://localhost:6379/1/cache_store'

4

1 回答 1

2

好的,这就是我的工作。

添加到我的 Gemfile

gem 'connection_pool'

对于轨道缓存:

Rails 缓存的初始化$REDIS_CACHE = Redis.new不正确,因为 Railsconfig.cache_store在您的环境文件(config/environments/development.rbconfig/environments/production.rb等)的设置中执行此操作

然后我在我的环境文件中的初始化如下:

config.cache_store = :redis_store, ENV["REDISCLOUD_FOR_RAILS_CACHE_URL"], {pool_size: 10, pool_timeout: 10}

(你会注意到它ENV["REDISCLOUD_FOR_RAILS_CACHE_URL"]被设置为完整的 URI,包括协议、用户名、密码、主机和端口。另一种方法是在哈希中将这些每个作为其自己的参数传递。)

于 2017-02-17T01:29:53.667 回答