Redis-py menyediakan kumpulan koneksi untuk Anda dari mana Anda dapat mengambil koneksi. Kumpulan koneksi membuat satu set koneksi yang dapat Anda gunakan sesuai kebutuhan (dan ketika selesai - koneksi dikembalikan ke kumpulan koneksi untuk digunakan kembali lebih lanjut). Mencoba membuat koneksi dengan cepat tanpa membuangnya (yaitu tidak menggunakan kumpulan atau tidak menggunakan kumpulan dengan benar) akan membuat Anda memiliki terlalu banyak koneksi untuk diredis (sampai Anda mencapai batas koneksi).
Anda dapat memilih untuk mengatur kumpulan koneksi dalam metode init dan menjadikan kumpulan global (Anda dapat melihat opsi lain jika tidak nyaman dengan global).
redis_pool = None
def init():
global redis_pool
print("PID %d: initializing redis pool..." % os.getpid())
redis_pool = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0)
Anda kemudian dapat mengambil koneksi dari kumpulan seperti ini:
redis_conn = redis.Redis(connection_pool=redis_pool)
Juga, saya berasumsi Anda menggunakan hireis bersama dengan redis-py karena seharusnya meningkatkan kinerja dalam kasus-kasus tertentu. Sudahkah Anda juga memeriksa jumlah koneksi yang terbuka ke server redis dengan pengaturan yang ada karena kemungkinan besar cukup tinggi? Anda dapat menggunakan perintah INFO untuk mendapatkan informasi tersebut:
redis-cli info
Periksa Klien bagian di mana Anda akan melihat "klien_terhubung " yang akan memberi tahu Anda berapa banyak koneksi yang Anda buka ke server redis saat itu juga.