Maison >développement back-end >tutoriel php >Comment Predis implémente la méthode pconnect de PHPredis
Cet article présente principalement comment predis implémente la méthode pconnect de phpredis. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
Predis est écrit en langage PHP En raison de la popularité de composer ces dernières années et de la prise en charge de composer par de nombreux frameworks, predis stocké dans la bibliothèque composer a également été largement utilisé.
C'est-à-dire qu'une connexion persistante est établie, ce qui convient à PHP demandant Redis sous une concurrence élevée.
Mais predis n'a pas de méthode pconnect(), comment implémenter des fonctions similaires ?Le projet utilise le framework Laravel, mais les paramètres de configuration pertinents ne se trouvent pas dans la documentation. Je n'ai donc pu lire que le code source du plug-in, et j'ai finalement trouvé une méthode pour me connecter à redis dans la classe
: /src/Connection/StreamConnection.php
/** * Initializes a TCP stream resource. * * @param ParametersInterface $parameters Initialization parameters for the connection. * * @return resource */ protected function tcpStreamInitializer(ParametersInterface $parameters) { if (!filter_var($parameters->host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { $address = "tcp://$parameters->host:$parameters->port"; } else { $address = "tcp://[$parameters->host]:$parameters->port"; } $flags = STREAM_CLIENT_CONNECT; if (isset($parameters->async_connect) && $parameters->async_connect) { $flags |= STREAM_CLIENT_ASYNC_CONNECT; } if (isset($parameters->persistent)) { if (false !== $persistent = filter_var($parameters->persistent, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE)) { $flags |= STREAM_CLIENT_PERSISTENT; if ($persistent === null) { $address = "{$address}/{$parameters->persistent}"; } } } $resource = $this->createStreamSocket($parameters, $address, $flags); return $resource; }À la ligne 19 de
nous pouvons voir un paramètre inconnu $parameters->persistent
, traduit par « durable ». persistent
Donc, tant que lorsque vous utilisez predis pour vous connecter à redis, ajoutez le paramètre persistent et attribuez-le à true ou 1, vous pouvez implémenter pconnect() de phpredis, ce qui est simple et pratique.
Can the predis support the function pconnect() which in php-redis? Yes, just add in the connection parameters persistent=1 (when using URI strings) or persistent => true (when using a named array).Comment êtes-vous entré dans cette fosse ? Ou à cause de la documentation du framework, de nombreux frameworks PHP prennent actuellement en charge Composer, comme Laravel, Yii, CI, etc., mais il n'y a aucune garantie que la documentation sera mise à jour à temps, en particulier la documentation chinoise, vous avez donc toujours besoin de la capacité pour lire le code source. En fait, vous pouvez voir beaucoup de choses dans le code ci-dessus :
( Predis dispose également d'une méthode HTTP pour se connecter à Redis, principalement en utilisant curl, qui n'est pas inclus dans cette classe). stream_socket_client
https://blog.csdn.net/u013474436/article/details/53131662
Recommandations associées :Installation de l'extension php-redis (phpredis)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!