Bạn sử dụng một nhóm kết nối toàn cầu riêng cho mã ứng dụng của mình. Đặt một cái gì đó như thế này vào trình khởi tạo redis.rb của bạn:
require 'connection_pool'
REDIS = ConnectionPool.new(size: 10) { Redis.new }
Bây giờ trong mã ứng dụng của bạn ở bất kỳ đâu, bạn có thể thực hiện việc này:
REDIS.with do |conn|
# some redis operations
end
Bạn sẽ có tối đa 10 kết nối để chia sẻ giữa các nhân viên puma / sidekiq của mình. Điều này sẽ dẫn đến hiệu suất tốt hơn vì, như bạn lưu ý một cách chính xác, bạn sẽ không có tất cả các chuỗi đấu tranh qua một kết nối Redis duy nhất.
Tất cả những điều này được ghi lại tại đây:https://github.com/mperham/sidekiq/wiki/Advanced-Options#connection-pooling