Jadual Kandungan
PHP扩展模块memcached长连接使用方法分析,扩展模块memcached
Rumah php教程 php手册 PHP扩展模块memcached长连接使用方法分析,扩展模块memcached

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

Jun 13, 2016 am 09:18 AM
memcached sambungan panjang

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:

$mc = new Memcached('mc');
$mc->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
$mc->addServers(array(
  array('mc1.example.com',11211),
  array('mc2.example.com',11211),
));
Salin selepas log masuk


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:

$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 />
Salin selepas log masuk

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Teknologi caching Memcached mengoptimumkan pemprosesan Sesi dalam PHP Teknologi caching Memcached mengoptimumkan pemprosesan Sesi dalam PHP May 16, 2023 am 08:41 AM

Memcached ialah teknologi caching yang biasa digunakan yang boleh meningkatkan prestasi aplikasi web dengan banyak. Dalam PHP, kaedah pemprosesan Sesi yang biasa digunakan adalah untuk menyimpan fail Sesi pada cakera keras pelayan. Walau bagaimanapun, kaedah ini tidak optimum kerana cakera keras pelayan akan menjadi salah satu kesesakan prestasi. Penggunaan teknologi caching Memcached boleh mengoptimumkan pemprosesan Sesi dalam PHP dan meningkatkan prestasi aplikasi Web. Sesi dalam PHP

Caching perpustakaan dalam PHP8.0: Memcached Caching perpustakaan dalam PHP8.0: Memcached May 14, 2023 am 08:16 AM

Caching library dalam PHP8.0: Memcached Dengan perkembangan pesat Internet, aplikasi moden memerlukan teknologi caching yang cekap dan boleh dipercayai untuk meningkatkan prestasi dan mengendalikan sejumlah besar data. Disebabkan populariti PHP dan sifat sumber terbuka, perpustakaan caching PHP telah menjadi alat penting dalam komuniti pembangunan web. Memcached ialah sistem caching memori berkelajuan tinggi sumber terbuka yang digunakan secara meluas yang boleh mengendalikan berjuta-juta permintaan cache bersambung serentak dan boleh digunakan dalam pelbagai jenis aplikasi, seperti rangkaian sosial, dalam talian

Kaedah pengoptimuman Swoole dan Workerman untuk sambungan panjang dan sambungan berterusan dalam PHP dan MySQL Kaedah pengoptimuman Swoole dan Workerman untuk sambungan panjang dan sambungan berterusan dalam PHP dan MySQL Oct 15, 2023 pm 12:54 PM

Kaedah pengoptimuman Swoole dan Workerman untuk sambungan panjang dan sambungan berterusan antara PHP dan MySQL memerlukan contoh kod khusus Dengan pembangunan aplikasi web dan peningkatan dalam skala pengguna, pertanyaan pangkalan data telah menjadi salah satu fokus pengoptimuman prestasi aplikasi. Dalam pembangunan PHP, kaedah sambungan pangkalan data yang biasa digunakan termasuk sambungan panjang dan sambungan pendek. Sambungan panjang merujuk kepada mengekalkan keadaan sambungan selepas mewujudkan sambungan pangkalan data dan menggunakan semula sambungan yang sama beberapa kali manakala sambungan pendek bermaksud menutup sambungan selepas setiap pertanyaan selesai. Dalam PHP, My tradisional

Bagaimana untuk mengoptimumkan penggunaan CPU aplikasi PHP menggunakan teknologi caching Memcached? Bagaimana untuk mengoptimumkan penggunaan CPU aplikasi PHP menggunakan teknologi caching Memcached? Jun 21, 2023 pm 05:07 PM

Dengan perkembangan Internet, aplikasi PHP telah menjadi lebih biasa dalam bidang aplikasi Internet. Walau bagaimanapun, capaian serentak yang tinggi oleh aplikasi PHP boleh menyebabkan penggunaan CPU yang tinggi pada pelayan, sekali gus menjejaskan prestasi aplikasi. Untuk mengoptimumkan prestasi aplikasi PHP, teknologi caching Memcached telah menjadi pilihan yang baik. Artikel ini akan memperkenalkan cara menggunakan teknologi caching Memcached untuk mengoptimumkan penggunaan CPU aplikasi PHP. Pengenalan kepada teknologi caching Memcached Memcached ialah a

Sandaran dan pemulihan pangkalan data PHP dan Memcached Sandaran dan pemulihan pangkalan data PHP dan Memcached May 15, 2023 pm 09:12 PM

Dengan perkembangan pesat Internet, sandaran dan pemulihan pangkalan data MySQL berskala besar telah menjadi salah satu kemahiran penting untuk perusahaan dan laman web utama. Dengan aplikasi Memcached yang meluas, cara membuat sandaran dan memulihkan Memcached juga telah menjadi isu penting. Sebagai salah satu bahasa utama untuk pembangunan web, PHP mempunyai kelebihan dan kemahiran unik dalam mengendalikan sandaran dan pemulihan MySQL dan Memcached. Artikel ini akan memperkenalkan secara terperinci kaedah pelaksanaan pemproses PHP MySQL dan sandaran dan pemulihan Memcached.

Pengurusan cache dengan PHP dan Memcached Pengurusan cache dengan PHP dan Memcached May 23, 2023 pm 02:21 PM

Dengan pertambahan berterusan aplikasi rangkaian dan pengembangan berterusan volum data, kecekapan membaca dan menulis data telah menjadi salah satu faktor penting yang mempengaruhi prestasi aplikasi. Aplikasi teknologi caching dapat menyelesaikan masalah ini dengan baik. Dalam aplikasi PHP, Memcached ialah pelayan cache yang paling biasa digunakan. Memcached ialah sistem caching objek memori teragih berprestasi tinggi yang boleh menyimpan data yang biasa digunakan dalam ingatan dan meningkatkan kecekapan pengambilan data. Artikel ini akan memperkenalkan cara menggunakan PHP dan Memcached untuk pengurusan cache, dan cara mengoptimumkan

Gunakan teknologi caching Memcached untuk mengoptimumkan main balik audio dan video dalam PHP Gunakan teknologi caching Memcached untuk mengoptimumkan main balik audio dan video dalam PHP May 17, 2023 pm 04:01 PM

Dengan perkembangan berterusan teknologi Internet, sumber audio dan video telah menjadi satu bentuk kandungan yang sangat penting di Internet, dan PHP, sebagai salah satu bahasa yang paling banyak digunakan dalam pembangunan rangkaian, juga sentiasa digunakan dalam bidang video. dan main balik audio. Walau bagaimanapun, dengan peningkatan bilangan pengguna tapak web audio dan video, banyak tapak web telah menemui masalah: dalam keadaan serentak yang tinggi, kelajuan pemprosesan audio dan video PHP menjadi perlahan dengan ketara, mengakibatkan masalah seperti ketidakupayaan untuk bermain dalam masa atau main balik tersekat. . Untuk menyelesaikan masalah ini, teknologi caching Memcached harus

Pemantauan prestasi PHP dan Memcached Pemantauan prestasi PHP dan Memcached May 15, 2023 pm 09:51 PM

Dengan perkembangan pesat aplikasi Internet moden, pengalaman pengguna adalah penting untuk kejayaan aplikasi. Bagaimana untuk memastikan prestasi tinggi dan ketersediaan tinggi aplikasi telah menjadi salah satu isu penting yang perlu diselesaikan oleh pembangun. Sebagai salah satu bahasa pengaturcaraan yang digunakan secara meluas, pemantauan dan pengoptimuman prestasi PHP juga sangat penting. Memcached ialah sistem caching objek memori teragih berprestasi tinggi yang boleh membantu aplikasi meningkatkan prestasi dan kebolehskalaan. Artikel ini akan memperkenalkan cara menggunakan PHP dan Memcached untuk melaksanakan pemantauan prestasi.

See all articles