GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich eine pconnect()-Verbindung schließen oder zurücksetzen, wenn ich PHPRedis und PHP-FPM verwende?

in phpredis 4.3.0 kann close() die von pconnect() erstellte Verbindung schließen. Wenn Sie die redis-Methode nach close() verwenden, wird automatisch eine neue dauerhafte Verbindung erstellt.


Rufen Sie pconnect mit einem Timeout auf? Angenommen, die Verbindung wird jedes Mal geschlossen, wenn das Timeout überschritten wird, könnten Sie den Master erneut auflösen, bevor Sie pconnect erneut mit einer anderen Adresse aufrufen.

Wenn Sie einen Redis-Cluster betreiben, verfügt PHPRedis über einen Cluster-Modus mit Timeout-Verhalten, das spezifisch für dieses Setup ist, mit Unterstützung für die Antwort „MOVED“:https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#timeout


Persistente Streams werden von PHP-Interna bereitgestellt, es ist ein ungeschriebenes Gesetz, dass alles, was einen Weg zum Erstellen eines persistenten Streams offenlegt, auch einen Weg bieten sollte, ihn zu zerstören.

PHP Redis bricht dieses Gesetz, es gibt einfach keine Möglichkeit für Sie, diesen dauerhaften Stream aus dem Userland zu zerstören.

Die Vorgehensweise sollte PR eine Implementierung der erforderlichen Methode sein.

Hier ist ein Patch gegen den PHP7-Zweig, der Redis::pclose implementiert:https://gist.github.com/krakjoe/326eadc61bea38fdd6e6

Beachten Sie, dass der Code für pdisconnect auf der vorhandenen Trennung basiert, diese beiden Funktionen sehen für mich seltsam aus und sind nicht ehrlich in Bezug auf ihren Rückgabewert. Ich nehme an, es gibt irgendwo einige Tests oder Code, die sich auf diese Seltsamkeit verlassen, also habe ich nicht versucht, es zu beheben.

Jeder PR sollte erwähnen, dass diese Funktionen seltsam aussehen und PHP7 der perfekte Zeitpunkt ist, um Dinge kaputt zu machen.


Linux
  1. Redis als Cache:Wie es funktioniert und warum man es verwendet

  2. So analysieren und vergleichen Sie Container-Images mit Container-Diff

  3. So installieren und sichern Sie Redis unter Ubuntu 18.04

  4. So konfigurieren Sie Nginx zum Ausführen von PHP mit PHP-FPM

  5. So zerstören Sie eine Socket-Verbindung in C vollständig

So vergrößern und verkleinern Sie Videos mit FFmpeg

So führen Sie Linux-Apps unter Windows 10 und 11 mit WSL aus

So finden und schließen Sie offene Ports in Linux

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

Wie man den DD-Befehl verwendet und wie man ISO damit brennt

So installieren und konfigurieren Sie Redis auf einem Linux-System