Redis:: приложение TimeoutError в Rails

Я продолжаю получать ошибку Redis:: Timeout в своем приложении (как в пользовательском интерфейсе, так и в фоновых заданиях). Я использую службу AWS ElastiCache для Redis.

Вот как я создаю соединение 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

Ответ 1

Вы должны объединить свои соединения Redis с помощью Connection Pool Gem и увеличить значение тайм-аута, если проблема не исчезнет:

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

Redis Gem