如何为 Redis-As-Rails-Cache(使用 Redis 作为 rails 缓存)Rails 4.1 实现连接池?
How do I implement connection pooling for Redis-As-Rails-Cache (using Redis as rails cache) Rails 4.1?
如何将连接池添加到我的 Redis 设置中?
出于某种原因,我似乎找不到任何相关信息。我正在使用像这样设置的 redis (3.2.0):
(您可以假设 resque_uri 和 cache_uri 已在此 c 之前解析)
重新请求:
$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'
好的,这就是我的工作。
已添加到我的 Gemfile
gem 'connection_pool'
对于 RAILS 缓存:
为 Rails 缓存初始化 $REDIS_CACHE = Redis.new
是不正确的,因为 Rails 在环境文件的 config.cache_store
设置中执行此操作(config/environments/development.rb
, config/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,包括协议、用户名、密码、主机和端口。另一种方法是将这些作为自己的参数传递到散列中.)
如何将连接池添加到我的 Redis 设置中?
出于某种原因,我似乎找不到任何相关信息。我正在使用像这样设置的 redis (3.2.0): (您可以假设 resque_uri 和 cache_uri 已在此 c 之前解析)
重新请求:
$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'
好的,这就是我的工作。
已添加到我的 Gemfile
gem 'connection_pool'
对于 RAILS 缓存:
为 Rails 缓存初始化 $REDIS_CACHE = Redis.new
是不正确的,因为 Rails 在环境文件的 config.cache_store
设置中执行此操作(config/environments/development.rb
, config/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,包括协议、用户名、密码、主机和端口。另一种方法是将这些作为自己的参数传递到散列中.)