Inhaltsverzeichnis
PHP扩展模块memcached长连接使用方法分析,扩展模块memcached
Heim Backend-Entwicklung PHP-Tutorial PHP扩展模块memcached长连接使用方法分析,扩展模块memcached_PHP教程

PHP扩展模块memcached长连接使用方法分析,扩展模块memcached_PHP教程

Jul 13, 2016 am 10:10 AM
memcached 长连接

PHP扩展模块memcached长连接使用方法分析,扩展模块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:

1

2

3

4

5

6

$mc = new Memcached('mc');

$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

$mc->addServers(array(

  array('mc1.example.com',11211),

  array('mc2.example.com',11211),

));

Nach dem Login kopieren


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:

1

2

3

4

5

6

7

8

$mc = new Memcached('mc');

$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);

if (!count($mc->getServerList())) {

  $mc->addServers(array(

    array('mc1.example.com',11211),

    array('mc2.example.com',11211),

  ));

}<br />

Nach dem Login kopieren

通过使用getServerList()方法来检查当前执行使用的php-fpm进程容器中是否已经存在相同名字的长连接资源,如果存在就不要重复使用addServers() 方法来新增长连接配置。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/932496.htmlTechArticlePHP扩展模块memcached长连接使用方法分析,扩展模块memcached 网上广泛流传着一篇文章,讲述php的两个扩展模块memcache和memcached的区别,其中特...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Memcached-Caching-Technologie optimiert die Sitzungsverarbeitung in PHP Die Memcached-Caching-Technologie optimiert die Sitzungsverarbeitung in PHP May 16, 2023 am 08:41 AM

Memcached ist eine häufig verwendete Caching-Technologie, die die Leistung von Webanwendungen erheblich verbessern kann. In PHP besteht die häufig verwendete Sitzungsverarbeitungsmethode darin, die Sitzungsdatei auf der Festplatte des Servers zu speichern. Diese Methode ist jedoch nicht optimal, da die Festplatte des Servers zu einem Leistungsengpass wird. Der Einsatz der Memcached-Caching-Technologie kann die Sitzungsverarbeitung in PHP optimieren und die Leistung von Webanwendungen verbessern. Sitzung in PHP

Optimierungsmethoden von Swoole und Workerman für lange Verbindungen und dauerhafte Verbindungen in PHP und MySQL Optimierungsmethoden von Swoole und Workerman für lange Verbindungen und dauerhafte Verbindungen in PHP und MySQL Oct 15, 2023 pm 12:54 PM

Die Optimierungsmethode von Swoole und Workerman für lange Verbindungen und dauerhafte Verbindungen zwischen PHP und MySQL erfordert spezifische Codebeispiele. Mit der Entwicklung von Webanwendungen und der Zunahme des Benutzerumfangs sind Datenbankabfragen zu einem Schwerpunkt der Anwendungsleistungsoptimierung geworden. Zu den in der PHP-Entwicklung häufig verwendeten Datenbankverbindungsmethoden gehören lange Verbindungen und kurze Verbindungen. Eine lange Verbindung bezieht sich auf die Aufrechterhaltung des Verbindungsstatus nach dem Herstellen einer Datenbankverbindung und die mehrfache Wiederverwendung derselben Verbindung, während eine kurze Verbindung bedeutet, dass die Verbindung nach Abschluss jeder Abfrage geschlossen wird. In PHP ist das traditionelle My

Caching-Bibliothek in PHP8.0: Memcached Caching-Bibliothek in PHP8.0: Memcached May 14, 2023 am 08:16 AM

Caching-Bibliothek in PHP8.0: Memcached Mit der rasanten Entwicklung des Internets erfordern moderne Anwendungen eine effiziente und zuverlässige Caching-Technologie, um die Leistung zu verbessern und große Datenmengen zu verarbeiten. Aufgrund der Popularität und des Open-Source-Charakters von PHP ist die PHP-Caching-Bibliothek zu einem unverzichtbaren Werkzeug in der Webentwicklungs-Community geworden. Memcached ist ein weit verbreitetes Open-Source-Hochgeschwindigkeits-Speicher-Caching-System, das Millionen gleichzeitiger verbundener Cache-Anfragen verarbeiten kann und in vielen verschiedenen Arten von Anwendungen, wie z. B. sozialen Netzwerken, online verwendet werden kann

Wie kann die CPU-Auslastung einer PHP-Anwendung mithilfe der Memcached-Caching-Technologie optimiert werden? Wie kann die CPU-Auslastung einer PHP-Anwendung mithilfe der Memcached-Caching-Technologie optimiert werden? Jun 21, 2023 pm 05:07 PM

Mit der Entwicklung des Internets haben PHP-Anwendungen immer mehr Einzug in den Bereich der Internetanwendungen gehalten. Allerdings kann ein hoher gleichzeitiger Zugriff durch PHP-Anwendungen zu einer hohen CPU-Auslastung auf dem Server führen und somit die Leistung der Anwendung beeinträchtigen. Um die Leistung von PHP-Anwendungen zu optimieren, ist die Caching-Technologie von Memcached eine gute Wahl. In diesem Artikel wird erläutert, wie Sie die Memcached-Caching-Technologie verwenden, um die CPU-Auslastung von PHP-Anwendungen zu optimieren. Einführung in die Memcached-Caching-Technologie Memcached ist ein

Sicherung und Wiederherstellung von PHP- und Memcached-Datenbanken Sicherung und Wiederherstellung von PHP- und Memcached-Datenbanken May 15, 2023 pm 09:12 PM

Mit der rasanten Entwicklung des Internets ist die groß angelegte Sicherung und Wiederherstellung von MySQL-Datenbanken zu einer der notwendigen Fähigkeiten für große Unternehmen und Websites geworden. Mit der weit verbreiteten Anwendung von Memcached ist auch die Sicherung und Wiederherstellung von Memcached zu einem wichtigen Thema geworden. Als eine der Hauptsprachen für die Webentwicklung verfügt PHP über einzigartige Vorteile und Fähigkeiten bei der Handhabung der Sicherung und Wiederherstellung von MySQL und Memcached. In diesem Artikel wird die Implementierungsmethode der PHP-Verarbeitung von MySQL und Memcached-Sicherung und -Wiederherstellung ausführlich vorgestellt.

PHP- und Memcached-Leistungsüberwachung PHP- und Memcached-Leistungsüberwachung May 15, 2023 pm 09:51 PM

Bei der rasanten Entwicklung moderner Internetanwendungen ist das Benutzererlebnis entscheidend für den Erfolg einer Anwendung. Die Gewährleistung einer hohen Leistung und Hochverfügbarkeit von Anwendungen ist zu einem der wichtigen Probleme geworden, die Entwickler lösen müssen. Als eine der am weitesten verbreiteten Programmiersprachen ist auch die Leistungsüberwachung und -optimierung von PHP sehr wichtig. Memcached ist ein leistungsstarkes, verteiltes Speicherobjekt-Caching-System, das Anwendungen dabei helfen kann, Leistung und Skalierbarkeit zu verbessern. In diesem Artikel wird erläutert, wie Sie PHP und Memcached zur Implementierung der Leistungsüberwachung verwenden.

Cache-Management mit PHP und Memcached Cache-Management mit PHP und Memcached May 23, 2023 pm 02:21 PM

Mit der kontinuierlichen Zunahme von Netzwerkanwendungen und der kontinuierlichen Erweiterung des Datenvolumens ist die Effizienz beim Lesen und Schreiben von Daten zu einem wichtigen Faktor geworden, der die Anwendungsleistung beeinflusst. Der Einsatz der Caching-Technologie kann dieses Problem gut lösen. In PHP-Anwendungen ist Memcached der am häufigsten verwendete Cache-Server. Memcached ist ein leistungsstarkes verteiltes Speicherobjekt-Caching-System, das häufig verwendete Daten im Speicher speichern und die Effizienz des Datenabrufs verbessern kann. In diesem Artikel erfahren Sie, wie Sie PHP und Memcached für die Cache-Verwaltung verwenden und optimieren

Wie verwende ich Memcached mit CakePHP? Wie verwende ich Memcached mit CakePHP? Jun 04, 2023 am 08:14 AM

Mit dem rasanten Wachstum moderner Anwendungen ist Caching für viele Entwickler zu einem wichtigen Bestandteil geworden. Caching kann die Anwendungsleistung erheblich verbessern und die Serverlast verringern. In CakePHP ist die Verwendung von Memcached eine Möglichkeit, Caching zu implementieren. Memcached ist ein speicherbasiertes verteiltes Caching-System. Es speichert Daten im Speicher und kann Daten schnell lesen und schreiben. In einer Umgebung mit mehreren Servern kann Memcached Daten verteilt speichern und über das Netzwerk teilen. Kann nicht nur

See all articles