Redis là một luồng, nhưng được viết bằng C thuần túy, sử dụng một vòng lặp sự kiện bên trong và xử lý các kết nối không đồng bộ, do đó, số lượng kết nối không ảnh hưởng đến nó nếu được cung cấp cùng một số lượng yêu cầu. Nó có khả năng xử lý các yêu cầu nhanh hơn mức mà ứng dụng của bạn có thể tạo ra vì sự chậm trễ của mạng, ruby chậm hơn so với C được biên dịch và tối ưu hóa, v.v., vì vậy bạn không cần phải lo lắng về việc nó là một luồng.
Việc tăng số lượng kết nối có lợi cho các yêu cầu đồng thời từ các chuỗi khác nhau vì không cần đợi phản hồi được gửi qua mạng để mở khóa kết nối, ngoài ra ruby có thể thực hiện các IO song song.
Ngoài ra, bạn có thể biết liệu pool có quá nhỏ hay không khi thời gian kiểm tra kết nối trở nên tồi tệ hơn bạn mong đợi / dung thứ và luồng / công nhân tương ứng đang chạy không tải trong khi chờ đợi, vì vậy hãy đánh giá chuẩn cho mã của bạn và có cái nhìn tốt về cách sử dụng và hành vi thực tế của bạn.
Mặt khác, tôi khuyên bạn không nên sử dụng tất cả giới hạn số lượng kết nối, đôi khi bạn có thể cần những kết nối bổ sung này. Ví dụ:
- để khởi động lại dyno duyên dáng / "không thời gian chết" ("khởi động trước"), bạn cần hai lần kết nối, vì các quy trình cũ vẫn đang chạy trong một thời gian ngắn
- giữ ít nhất một kết nối miễn phí để gỡ lỗi khẩn cấp vì bạn có thể muốn kết nối trực tiếp từ bảng điều khiển / và xem dữ liệu nào bên trong khi một số tải cao không mong muốn đến