In genere, l'apertura di una connessione è un'operazione costosa, quindi le migliori pratiche moderne sono mantenerle aperte. D'altra parte, le connessioni aperte richiedono risorse (dal database) per essere gestite, quindi anche mantenere aperte molte connessioni inattive può essere problematico. Questo compromesso viene solitamente risolto tramite l'uso di pool di connessioni.
Detto questo, la cosa più interessante è perché PHP segfault. Il timeout è, evidentemente, causato da un comando di lunga durata (script CLI nel tuo caso) che impedisce a Redis (che è principalmente a thread singolo) di occuparsi delle connessioni dell'app PHP. Anche se questo è un comportamento Redis noto, mi aspetto che PHP (evento senza la riconnessione nella libreria client) non si incasini così miseramente.