Używasz oddzielnej globalnej puli połączeń dla kodu aplikacji. Umieść coś takiego w inicjatorze redis.rb:
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Teraz w kodzie aplikacji w dowolnym miejscu możesz to zrobić:
REDIS.with do |conn|
# some redis operations
end
Będziesz mieć do 10 kontaktów, którymi możesz się podzielić wśród pracowników pumy/sidekiq. Doprowadzi to do lepszej wydajności, ponieważ, jak słusznie zauważyłeś, nie będziesz mieć wszystkich wątków walczących o jedno połączenie Redis.
Wszystko to jest udokumentowane tutaj:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling