Rails应用程序中的Redis :: TimeoutError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails应用程序中的Redis :: TimeoutError相关的知识,希望对你有一定的参考价值。

我的应用程序中不断出现Redis :: Timeout错误(在UI和后台作业中)。我正在为Redis使用AWS ElastiCache服务。

这就是我创建Redis连接的方式。在我的config / application.rb中,我有:

$redis = Redis.new(host: REDIS_HOST, port: REDIS_PORT, db: REDIS_DB)

如何避免出现超时错误?我使用默认连接设置如下:

> $redis.client.options[:reconnect_attempts]
 => 1 
> $redis.client.options[:timeout]
 => 5.0 
> $redis.client.options[:tcp_keepalive]
 => 0 
> $redis.client.options[:inherit_socket]
 => false
答案

您应该在Connection Pool Gem的帮助下汇集Redis连接,并在问题仍然存在时增加超时值:

ConnectionPool.new(size: 5, timeout: 3) {Redis.new({:host => 'localhost', :port => 6379, :db => 1, :timeout => 240})}

Redis Gem

以上是关于Rails应用程序中的Redis :: TimeoutError的主要内容,如果未能解决你的问题,请参考以下文章

Rails应用程序中的Redis :: TimeoutError

Rails中如何将MaxMind本地数据、CSV文件导入redis?

Docker-compose 与 redis、sidekiq、rails SocketError

Opsworks:Rails 层连接到 Elasticache:Redis

Rails、redis 和 node.js 如何异步处理请求?

如何在 Amazon OpsWorks 上为 Rails 应用程序运行 Redis?