PHP扩展模块memcached长连接使用方法分析
这篇文章主要介绍了PHP扩展模块memcached长连接使用方法分析,需要的朋友可以参考下
网上广泛流传着一篇文章,讲述php的两个扩展模块memcache和memcached的区别,,其中特意强调了memcached与memcached一个很大的区别是memcached模块不支持长连接。以至于后来很多年我都认为memcached是不支持长连接的,其实不然,memcached扩展模块从很早的版本开始就已经支持长连接了。从扩展模块的源码注视中我们就能看到:
/* {{{ Memcached::__construct([string persistent_id[, callback on_new[, string connection_str]]]))
Creates a Memcached object, optionally using persistent memcache connection */
static PHP_METHOD(Memcached, __construct)
{
从php的手册身上我们可以看到memcached的扩展模块提供的构造函数提供一个参数persistent_id可选项,手册中这样介绍:
默认情况下,Memcached实例在请求结束后会被销毁。但可以在创建时通过persistent_id为每个实例指定唯一的ID, 在请求间共享实例。所有通过相同的persistent_id值创建的实例共享同一个连接。
这个参数的含义就是说如果你传递了一个命名id给到构造方法,那么就会建立长连接,通常我们使用的都是PHP-FPM模式,这样PHP-FPM进程就会和memcached服务简历一条长连接通道。我们也可以理解为persistent_id就是一个连接池名字,所有php-fpm进程都是这个连接池中的一员。
但我们需要注意的是php是解释性语言,当php第一次通过memached模块建立起长连接后,切记后续的php执行就不要再通过memcached的构造函数构建相同persistent_id命名的长连接,可以建立不同persistent_id名字的长连接,如果是相同的名字被php重复执行,一定会导致php-fpm的进程异常导致与memcached的通信越来越慢,同时根据libmemcached的版本不同还会导致php产生coredump。
那么我们如何避免单个php-fpm在建立完以persistent_id命名的长连接后不再重复建立长连接呢?其实在PHP带有评注的手册上是有讲解的,内容如下:
When using persistent connections, it is important to not re-add servers.
This is what you do not want to do:
Every time the page is loaded those servers will be appended to the list resulting in many simultaneous open connections to the same server. The addServer/addServers functions to not check for existing references to the specified servers.
A better approach is something like:
通过使用getServerList()方法来检查当前执行使用的php-fpm进程容器中是否已经存在相同名字的长连接资源,如果存在就不要重复使用addServers() 方法来新增长连接配置。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Memcached est une technologie de mise en cache couramment utilisée qui peut améliorer considérablement les performances des applications Web. En PHP, la méthode de traitement de session couramment utilisée consiste à stocker le fichier de session sur le disque dur du serveur. Cependant, cette méthode n'est pas optimale car le disque dur du serveur deviendra l'un des goulots d'étranglement des performances. L'utilisation de la technologie de mise en cache Memcached peut optimiser le traitement des sessions en PHP et améliorer les performances des applications Web. Séance en PHP

Bibliothèque de mise en cache en PHP8.0 : Memcached Avec le développement rapide d'Internet, les applications modernes nécessitent une technologie de mise en cache efficace et fiable pour améliorer les performances et gérer de grandes quantités de données. En raison de la popularité de PHP et de sa nature open source, la bibliothèque de mise en cache PHP est devenue un outil essentiel dans la communauté du développement Web. Memcached est un système de mise en cache mémoire haute vitesse open source largement utilisé qui peut gérer des millions de requêtes de cache connectées simultanément et peut être utilisé dans de nombreux types d'applications différents, tels que les réseaux sociaux, en ligne.

Avec le développement d'Internet, les applications PHP sont devenues de plus en plus courantes dans le domaine des applications Internet. Cependant, un accès simultané élevé par les applications PHP peut entraîner une utilisation élevée du processeur sur le serveur, affectant ainsi les performances de l'application. Afin d'optimiser les performances des applications PHP, la technologie de mise en cache Memcached est devenue un bon choix. Cet article explique comment utiliser la technologie de mise en cache Memcached pour optimiser l'utilisation du processeur des applications PHP. Introduction à la technologie de mise en cache Memcached Memcached est un

La méthode d'optimisation de Swoole et Workerman pour les connexions longues et persistantes entre PHP et MySQL nécessite des exemples de code spécifiques. Avec le développement d'applications Web et l'augmentation de la taille des utilisateurs, les requêtes de base de données sont devenues l'un des objectifs de l'optimisation des performances des applications. Dans le développement PHP, les méthodes de connexion aux bases de données couramment utilisées incluent les connexions longues et les connexions courtes. Une connexion longue fait référence au maintien de l'état de la connexion après avoir établi une connexion à la base de données et à la réutilisation de la même connexion plusieurs fois, tandis qu'une connexion courte signifie la fermeture de la connexion une fois chaque requête terminée. En PHP, le traditionnel My

Avec le développement rapide d'Internet, la sauvegarde et la restauration de bases de données MySQL à grande échelle sont devenues l'une des compétences essentielles des grandes entreprises et des sites Web. Avec l'application généralisée de Memcached, la manière de sauvegarder et de restaurer Memcached est également devenue un problème important. En tant que l'un des principaux langages de développement Web, PHP présente des avantages et des compétences uniques dans la gestion de la sauvegarde et de la récupération de MySQL et Memcached. Cet article présentera en détail la méthode d'implémentation du traitement PHP de la sauvegarde et de la récupération MySQL et Memcached.

Avec l'augmentation continue des applications réseau et l'expansion continue du volume de données, l'efficacité de la lecture et de l'écriture des données est devenue l'un des facteurs importants affectant les performances des applications. L’application de la technologie de mise en cache peut bien résoudre ce problème. Dans les applications PHP, Memcached est le serveur de cache le plus couramment utilisé. Memcached est un système de mise en cache d'objets de mémoire distribuée hautes performances qui peut stocker les données couramment utilisées en mémoire et améliorer l'efficacité de la récupération des données. Cet article expliquera comment utiliser PHP et Memcached pour la gestion du cache, et comment optimiser

Avec le développement continu de la technologie Internet, les ressources audio et vidéo sont devenues une forme de contenu très importante sur Internet, et PHP, en tant que l'un des langages les plus utilisés dans le développement de réseaux, est également constamment utilisé dans le domaine de la vidéo. et la lecture audio. Cependant, avec le nombre croissant d'utilisateurs de sites Web audio et vidéo, de nombreux sites Web ont découvert un problème : dans des conditions de concurrence élevée, la vitesse de traitement de l'audio et de la vidéo par PHP ralentit considérablement, ce qui entraîne des problèmes tels qu'une incapacité à lire à temps ou une lecture bloquée. . Pour résoudre ce problème, la technologie de mise en cache Memcached doit

Avec le développement rapide des applications Internet modernes, l’expérience utilisateur est cruciale pour le succès d’une application. Comment garantir des performances élevées et une haute disponibilité des applications est devenu l'un des problèmes importants que les développeurs doivent résoudre. En tant que langage de programmation largement utilisé, la surveillance et l'optimisation des performances de PHP sont également très importantes. Memcached est un système de mise en cache d'objets à mémoire distribuée hautes performances qui peut aider les applications à améliorer leurs performances et leur évolutivité. Cet article explique comment utiliser PHP et Memcached pour implémenter la surveillance des performances.
