Im Allgemeinen ist das Öffnen einer Verbindung ein teurer Vorgang, daher bestehen moderne Best Practices darin, sie offen zu halten. Andererseits erfordern offene Verbindungen die Verwaltung von Ressourcen (aus der Datenbank), sodass es ebenfalls problematisch sein kann, viele ungenutzte Verbindungen offen zu halten. Dieser Kompromiss wird normalerweise über die Verwendung von Verbindungspools gelöst.
Interessanter ist jedoch, warum PHP segfault. Das Timeout wird offensichtlich durch einen lange laufenden Befehl (CLI-Skript in Ihrem Fall) verursacht, der Redis (das meistens Single-Threading ist) daran hindert, sich um die Verbindungen der PHP-App zu kümmern. Obwohl dies ein bekanntes Redis-Verhalten ist, würde ich erwarten, dass PHP (Ereignis ohne Reconnect in der Client-Bibliothek) nicht so kläglich in die Hose geht.