Pro kód aplikace používáte samostatný globální fond připojení. Vložte něco takového do inicializátoru redis.rb:
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Nyní v kódu aplikace kdekoli můžete provést toto:
REDIS.with do |conn|
# some redis operations
end
Budete mít až 10 připojení ke sdílení mezi svými pracovníky puma/sidekiq. To povede k lepšímu výkonu, protože, jak správně poznamenáte, nebudete mít všechna vlákna bojovat o jediné připojení Redis.
To vše je zdokumentováno zde:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling