Sie verwenden einen separaten globalen Verbindungspool für Ihren Anwendungscode. Fügen Sie so etwas in Ihren redis.rb-Initialisierer ein:
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Jetzt können Sie in Ihrem Anwendungscode überall Folgendes tun:
REDIS.with do |conn|
# some redis operations
end
Sie haben bis zu 10 Verbindungen, die Sie mit Ihren Puma-/Sidekiq-Mitarbeitern teilen können. Dies führt zu einer besseren Leistung, da, wie Sie richtig bemerkt haben, nicht alle Threads um eine einzelne Redis-Verbindung kämpfen müssen.
All dies ist hier dokumentiert:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling