gpt4 book ai didi

ruby - 如何为 Redis-As-Rails-Cache(使用 Redis 作为 rails 缓存)Rails 4.1 实现连接池?

转载 作者:可可西里 更新时间:2023-11-01 11:17:57 25 4
gpt4 key购买 nike

如何将连接池添加到我的 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,包括协议(protocol)、用户名、密码、主机和端口。另一种方法是将它们作为其传递在散列中拥有自己的参数。)

关于ruby - 如何为 Redis-As-Rails-Cache(使用 Redis 作为 rails 缓存)Rails 4.1 实现连接池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com