Използвате отделен пул за глобални връзки за кода на приложението си. Поставете нещо подобно във вашия инициализатор на redis.rb:
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Сега в кода на приложението си навсякъде можете да направите това:
REDIS.with do |conn|
# some redis operations
end
Ще имате до 10 връзки, които да споделите между вашите служители на puma/sidekiq. Това ще доведе до по-добра производителност, тъй като, както правилно отбелязвате, няма да имате всички нишки да се борят за една връзка с Redis.
Всичко това е документирано тук:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling