Solución:
Una conexión de cliente permanecerá abierta para siempre si no la cierra.
https://redis.io/topics/clients
Tiempos de espera del cliente De forma predeterminada, las versiones recientes de Redis no cierran la conexión con el cliente si el cliente está inactivo durante muchos segundos: la conexión permanecerá abierta para siempre.
Sin embargo, si no le gusta este comportamiento, puede configurar un tiempo de espera, de modo que si el cliente está inactivo durante más de la cantidad de segundos especificada, la conexión del cliente se cerrará.
Puede configurar este límite a través de redis.conf o simplemente usando CONFIG SET timeout.
Creo que su conexión de redis está creando una instancia en cada solicitud, lo que hace que alcance el límite máximo de conexión, debe mantener su instancia de redis en el global, esto compartirá la misma instancia de redis, esto ya no debería causar demasiadas conexiones. La instancia de redis tendrá su propio grupo de conexiones, puede limitar sus números de conexión estableciendo el parámetro max_connections en redis.ConnectionPool. Si se establece max_connections, este objeto genera redis.ConnectionError cuando se alcanza el límite del grupo.
POOL = redis.ConnectionPool(host= host, port=6379, db=0)
r = redis.StrictRedis(connection_pool=POOL)