GNU/Linux >> Znalost Linux >  >> Linux

Jak zavřít nebo resetovat připojení pconnect() při použití PHPRedis a PHP-FPM?

v phpredis 4.3.0 může close() uzavřít spojení vytvořené pconnect(). pokud po close() použijete metodu redis, automaticky se vytvoří nové trvalé připojení.


Voláte pconnect s časovým limitem? Za předpokladu, že se připojení uzavře pokaždé, když je překročen časový limit, můžete znovu vyřešit hlavní zařízení, než znovu zavoláte pconnect s jinou adresou.

Pokud provozujete cluster Redis, PHPRedis má režim clusteru s chováním při vypršení časového limitu, které je specifické pro toto nastavení s podporou odezvy „MOVED“:https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#timeout


Trvalé streamy jsou poskytovány interními prvky PHP, je nepsaným zákonem, že cokoli, co odhaluje způsob, jak vytvořit trvalý stream, by mělo také poskytovat způsob, jak jej zničit.

PHP Redis porušuje tento zákon, prostě neexistuje způsob, jak zničit ten trvalý stream z uživatelské země.

Postupem by mělo být PR a implementace požadované metody.

Zde je oprava proti větvi PHP7, která implementuje Redis::pclose:https://gist.github.com/krakjoe/326eadc61bea38fdd6e6

Všimněte si, že kód pro pdisconnect je založen na existujícím odpojení, obě tyto funkce mi připadají divné a nejsou upřímné ohledně jejich návratové hodnoty. Předpokládám, že někde existují nějaké testy nebo kód, který se spoléhá na tuto podivnost, takže jsem se to nepokoušel opravit.

Každý PR by měl zmínit, že tyto funkce vypadají divně a PHP7 je ideální čas na to, aby se věci rozloučily.


Linux
  1. Jak nainstalovat a zabezpečit Redis na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat Redis na Debianu

  3. Jak úplně zničit připojení zásuvky v C

  1. Redis jako mezipaměť:Jak to funguje a proč ji používat

  2. Raspberry Pi Firewall:Jak jej nainstalovat a spravovat pomocí UFW

  3. Jak vypálit obraz ISO na DVD a USB pomocí dd

  1. Jak analyzovat a porovnávat obrázky kontejnerů pomocí Container-diff

  2. Jak používat Ansible k instalaci a konfiguraci Redis 6 na Ubuntu 20.04

  3. Jak nakonfigurovat Nginx pro spouštění PHP pomocí PHP-FPM