Rumah pembangunan bahagian belakang tutorial php PHP作为memcached客户端的具体实现方法_PHP教程

PHP作为memcached客户端的具体实现方法_PHP教程

Jul 15, 2016 pm 01:29 PM
memcached php memperkenalkan khusus boleh capai pelanggan kami artikel kaedah daripada Tahu lulus

我们通过以前文章的介绍可以知道memcached 的具体工作原理。那么,今天我们将会为大家演示如何实现有两种方法可以使 PHP 作为 memcached 客户端,调用 memcached 的服务进行对象存取操作。

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span> </span></span></li>
<li class=""><span>// 包含 memcached 类文件  </span></li>
<li class="alt"><span>require_once('memcached-client.php');  </span></li>
<li class=""><span>// 选项设置  </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">options</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>(  </span>
</li>
<li class="">
<span>    'servers' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> array('192.168.1.1:11211′), //memcached 服务的地址、端口,可用多个数组元素表示多个 memcached 服务  </span>
</li>
<li class="alt">
<span>    'debug' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> true, //是否打开 debug  </span>
</li>
<li class="">
<span>    'compress_threshold' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 10240, //超过多少字节的数据时进行压缩  </span>
</li>
<li class="alt">
<span>    'persistant' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> false //是否使用持久连接  </span>
</li>
<li class=""><span>    );  </span></li>
<li class="alt"><span>// 创建 memcached 对象实例  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">mc</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> memcached($options);  </span>
</li>
<li class="alt"><span>// 设置此脚本使用的唯一标识符  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">key</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'mykey'</font></span><span>;  </span>
</li>
<li class="alt"><span>// 往 memcached 中写入对象  </span></li>
<li class="">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>add($key, 'some random strings');  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>add() ', 60, '_')."n";  </span>
</li>
<li class="alt"><span>var_dump($val);  </span></li>
<li class=""><span>// 替换已写入的对象数据值  </span></li>
<li class="alt">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>replace($key, array('some'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'haha', 'array'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'xxx'));  </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="alt">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>replace() ', 60, '_')."n";  </span>
</li>
<li class=""><span>var_dump($val);  </span></li>
<li class="alt"><span>// 删除 memcached 中的对象  </span></li>
<li class="">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>delete($key);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>delete() ', 60, '_')."n";  </span>
</li>
<li class="alt"><span>var_dump($val);  </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>
Salin selepas log masuk

第一种PHP作为memcached客户端的方法,PHP 有一个叫做 memcache 的扩展,Linux 下编译时需要带上 –enable-memcache[=DIR] 选项,Window 下则在 php.ini 中去掉 php_memcache.dll 前边的注释符,使其可用。

除此之外,还有一种方法,可以避开扩展、重新编译所带来的麻烦,那就是直接使用 php-memcached-client。

本文选用第二种方式,虽然效率会比扩展库稍差一些,但问题不大。

首先 下载 memcached-client.php,在下载了 memcached-client.php 之后,就可以通过这个文件中的类“memcached”对 memcached 服务进行操作了。其实代码调用非常简单,主要会用到的方法有 add()、get()、replace() 和 delete(),方法说明如下:

add ($key, $val, $exp = 0)

往 memcached 中写入对象,$key 是对象的唯一标识符,$val 是写入的对象数据,$exp 为过期时间,单位为秒,默认为不限时间;

get ($key)

从 memcached 中获取对象数据,通过对象的唯一标识符 $key 获取;

replace ($key, $value, $exp=0)

使用 $value 替换 memcached 中标识符为 $key 的对象内容,参数与 add() 方法一样,只有 $key 对象存在的情况下才会起作用;

delete ($key, $time = 0)

删除 memcached 中标识符为 $key 的对象,$time 为可选参数,表示删除之前需要等待多长时间。

下面是一段简单的测试代码,代码中对标识符为 ‘mykey’ 的对象数据进行存取操作:

是不是PHP作为memcached客户端实现起来很简单,在实际应用中,通常会把数据库查询的结果集保存到 memcached 中,下次访问时直接从 memcached 中获取,而不再做数据库查询操作,这样可以在很大程度上减轻数据库的负担。通常会将 SQL 语句 md5() 之后的值作为唯一标识符 key。下边是一个利用 memcached 来缓存数据库查询结果集的示例(此代码片段紧接上边的示例代码):

<ol class="dp-xml">
<li class="alt"><span><strong><font color="#006699"><span class="tag"></span><span class="tag-name">php</span></font></strong><span> </span></span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">sql</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'SELECT * FROM users'</font></span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">key</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">md5</font></span><span>($sql);   //memcached 对象标识符  </span>
</li>
<li class="">
<span>if ( !($</span><span class="attribute"><font color="#ff0000">datas</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key)) ) {  </span>
</li>
<li class="alt"><span>    // 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。  </span></li>
<li class=""><span>    echo "n".str_pad('Read datas from MySQL.', 60, '_')."n";  </span></li>
<li class="alt">
<span>    $</span><span class="attribute"><font color="#ff0000">conn</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">mysql_connect</font></span><span>('localhost', 'test', 'test');  </span>
</li>
<li class=""><span>    mysql_select_db('test');  </span></li>
<li class="alt">
<span>    $</span><span class="attribute"><font color="#ff0000">result</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">mysql_query</font></span><span>($sql);  </span>
</li>
<li class="">
<span>    while ($</span><span class="attribute"><font color="#ff0000">row</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">mysql_fetch_object</font></span><span>($result))  </span>
</li>
<li class="alt"><span>        $datas[] = $row;  </span></li>
<li class=""><span>    // 将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。  </span></li>
<li class="alt">
<span>    $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>add($key, $datas);  </span>
</li>
<li class=""><span>} else {  </span></li>
<li class="alt"><span>    echo "n".str_pad('Read datas from memcached.', 60, '_')."n";  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span>var_dump($datas);  </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>
Salin selepas log masuk

可以看出,使PHP作为memcached客户端之后,可以减少数据库连接、查询操作,数据库负载下来了,脚本的运行速度也提高了。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446355.htmlTechArticle我们通过以前文章的介绍可以知道memcached 的具体工作原理。那么,今天我们将会为大家演示如何实现 有两种方法可以使 PHP 作为 memcached 客...
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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial Java
1655
14
Tutorial PHP
1252
29
Tutorial C#
1226
24
Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

PHP: Bahasa utama untuk pembangunan web PHP: Bahasa utama untuk pembangunan web Apr 13, 2025 am 12:08 AM

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

See all articles