Redis adalah utas tunggal, tetapi ditulis dalam C murni, menggunakan loop peristiwa di dalam dan menangani koneksi secara asinkron, sehingga jumlah koneksi tidak terlalu memengaruhinya dengan jumlah permintaan yang sama. Ia mampu menangani permintaan lebih cepat daripada yang dapat dihasilkan oleh aplikasi Anda karena penundaan jaringan, Ruby lebih lambat daripada C yang dikompilasi dan dioptimalkan, dll, jadi Anda tidak perlu khawatir bahwa itu adalah single-threaded.
Peningkatan jumlah koneksi bermanfaat untuk permintaan bersamaan dari utas yang berbeda karena tidak perlu menunggu respons dikirim melalui jaringan untuk membuka kunci koneksi, ditambah ruby dapat melakukan IO paralel.
Anda juga dapat mengetahui apakah kumpulan terlalu kecil ketika waktu checkout koneksi menjadi lebih buruk dari yang Anda harapkan/toleransi dan utas/pekerja yang sesuai sedang menganggur saat menunggunya, jadi tolok ukur kode Anda dan perhatikan baik-baik pola penggunaan dan perilaku Anda yang sebenarnya.
Di sisi lain saya akan menyarankan untuk tidak menggunakan semua batas jumlah koneksi, ada kalanya Anda mungkin memerlukan koneksi tambahan ini. Misalnya:
- untuk anggun/"zero downtime" dyno restart ("preboot") Anda memerlukan koneksi dua kali, karena proses lama masih berjalan untuk beberapa waktu
- simpan setidaknya satu koneksi gratis untuk debug darurat karena Anda mungkin ingin dapat terhubung dari konsol/langsung dan melihat data apa yang ada di dalamnya saat terjadi beban tinggi yang tidak terduga