Ogólnie rzecz biorąc, otwarcie połączenia jest kosztowną operacją, dlatego współczesne najlepsze praktyki mają na celu utrzymanie ich otwartego. Z drugiej strony, otwarte połączenia wymagają zasobów (z bazy danych) do zarządzania, więc utrzymywanie otwartych wielu nieaktywnych połączeń również może być problematyczne. Ten kompromis jest zwykle rozwiązywany za pomocą pul połączeń.
To powiedziawszy, bardziej interesujące jest to, dlaczego PHP działa segfault. Limit czasu jest ewidentnie spowodowany przez długo działające polecenie (w twoim przypadku skrypt CLI), które blokuje Redis (który jest w większości jednowątkowy) przed obsługą połączeń aplikacji PHP. Chociaż jest to dobrze znane zachowanie Redisa, spodziewałbym się, że PHP (zdarzenie bez funkcji ponownego połączenia w bibliotece klienckiej) nie będzie tak żałośnie rozpierdalać.