Rumah pembangunan bahagian belakang tutorial php 队列在编程中的实际应用(php)_php技巧

队列在编程中的实际应用(php)_php技巧

May 17, 2016 am 09:23 AM
beratur

一:队列的概念、数据结构

队列(Queue)是运算受到限制的一种线性表。只允许在表的一端进行插入,而在另一端进行删除元素的线性表。队尾(rear)是允许插入的一端。队头(front)是允许删除的一端。空队列是不含元素的空表。

假设有个队列Q=(a1,a2,…,an),则a1为队头元素,an为队尾元素。元素入队的次序为a1,a2,…,an,而出队的次序为a1,a2,…,an。可见队列的操作是按照先进先出的原则进行的。

其他详细的介绍请在网上搜索很多资料。

二:PHP的队列

在PHP中队列以数组的形式表现。数组中的第一个元素作为队头,最后一个元素作为队尾,这样就可以操作这个队列了。

结果就是

网上有很多封装好的类,可以直接使用。

array_push:将一个或多个单元压入数组的末尾(入栈)

array_unshift:在数组开头插入一个或多个单元

array_pop:将数组最后一个单元弹出(出栈)

array_shift:将数组开头的单元移出数组

三:Ruby Starling

Starling是一个支持MemCache协议的轻量级持久化服务器。Starling是让创建网络访问队列或者多个队列异常简单,也就是说多点和多台机器间的异步工作进程。它是著名微博客网站Twitter开发用来处理大量的队列消息,以及保持服务的响应。Starling已经在生产环境中使用,不仅是Twitter在使用,FiveRuns同样在使用。FiveRuns甚至还根据自己的应用做了改进。

Starling和Memcache使用的是一个协议只是端口不一样。Starling使用的是22122端口,Memcache使用的是11211端口。

Ruby
tar xzvf ruby-1.9.1-p0.tar.gz
cd ruby-1.9.1-p0
./configure --prefix=/usr/local/huiyangruby
make
make install
 
Gem
tar -zxvf rubygems-1.3.6.tgz
cd rubygems-1.3.6
ruby setup.rb
 
Starling
gem install memcache-client starling
starling
starling & //后台执行
starling_top //查看PS信息

接下来你就可以使用队列做自己的事情啦。Starling和Memcache用法一样,两者配合处理更佳。

使用Memcache::addServer可以建立一个memcache连接池。他不同于connect与pconnect他是在有请求是才连接,无则端口连接。

Memcache::connect -- 打开一个到Memcache的连接。

Memcache::pconnect -- 打开一个到Memcache的长连接。

Memcache::close -- 关闭一个Memcache的连接。

Memcache::set -- 保存数据到Memcache服务器上。

Memcache::get -- 提取一个保存在Memcache服务器上的数据。

Memcache::replace -- 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)。

Memcache::delete -- 从Memcache服务器上删除一个保存的项目。

Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)。

Memcache::getStats -- 获取当前Memcache服务器运行的状态。

四:张宴作品HTTPSQS

HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。

有兴趣的可以看看网址:http://blog.s135.com/httpsqs_1_2/

五:队列的应用

队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。(文/侯惠阳 PHPer.yang)

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)

Deque dalam Python: Melaksanakan baris gilir dan susunan yang cekap Deque dalam Python: Melaksanakan baris gilir dan susunan yang cekap Apr 12, 2023 pm 09:46 PM

deque dalam Python ialah deque peringkat rendah, sangat dioptimumkan yang berguna untuk melaksanakan baris gilir dan susunan Pythonic yang elegan dan cekap, yang merupakan jenis data berasaskan senarai yang paling biasa dalam pengkomputeran. Dalam artikel ini, Yun Duojun akan mempelajari perkara berikut bersama-sama anda: Mula menggunakan deque untuk memunculkan dan menambahkan elemen dengan berkesan. Gunakan deque untuk membina baris gilir yang cekap senarai Python dan elemen pop timbul Operasi secara amnya sangat Cekap. Jika kerumitan masa dinyatakan dalam Big O, maka kita boleh mengatakan bahawa ia adalah O(1). Dan apabila Python perlu memperuntukkan semula memori untuk meningkatkan senarai asas untuk menerima elemen baharu, ini

Bagaimana untuk menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6? Bagaimana untuk menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6? Jun 12, 2023 am 08:51 AM

Memandangkan aplikasi web terus berkembang, kami perlu mengendalikan sejumlah besar tugas untuk mengekalkan kestabilan dan ketersediaan aplikasi. Menggunakan sistem beratur adalah satu penyelesaian. ThinkPHP6 menyediakan sistem baris gilir terbina dalam untuk mengurus tugas. Walau bagaimanapun, pengendalian sebilangan besar tugas memerlukan pengurusan baris gilir yang lebih baik, yang boleh dicapai menggunakan Penyelia. Artikel ini akan memperkenalkan cara menggunakan Supervisor untuk mengurus baris gilir ThinkPHP6. Sebelum itu, kita perlu memahami beberapa konsep asas: sistem baris gilir adalah

Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL Oct 15, 2023 pm 02:26 PM

Ringkasan aplikasi teknologi baris gilir dalam kelewatan mesej dan cuba semula mesej dalam PHP dan MySQL: Dengan pembangunan berterusan aplikasi web, permintaan untuk pemprosesan serentak yang tinggi dan kebolehpercayaan sistem semakin tinggi dan lebih tinggi. Sebagai penyelesaian, teknologi baris gilir digunakan secara meluas dalam PHP dan MySQL untuk melaksanakan kelewatan mesej dan fungsi cuba semula mesej. Artikel ini akan memperkenalkan aplikasi teknologi baris gilir dalam PHP dan MySQL, termasuk prinsip asas baris gilir, kaedah menggunakan baris gilir untuk melaksanakan kelewatan mesej dan kaedah menggunakan baris gilir untuk melaksanakan percubaan semula mesej, dan memberi

Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Analisis dan strategi pengoptimuman untuk prestasi baris gilir Java Queue Jan 09, 2024 pm 05:02 PM

Analisis Prestasi dan Strategi Pengoptimuman JavaQueue Queue Ringkasan: Queue (Queue) ialah salah satu struktur data yang biasa digunakan di Java dan digunakan secara meluas dalam pelbagai senario. Artikel ini akan membincangkan isu prestasi baris gilir JavaQueue dari dua aspek: analisis prestasi dan strategi pengoptimuman serta memberikan contoh kod khusus. Baris Gilir Pengenalan ialah struktur data masuk dahulu keluar dahulu (FIFO) yang boleh digunakan untuk melaksanakan mod pengeluar-pengguna, baris gilir tugas kumpulan benang dan senario lain. Java menyediakan pelbagai pelaksanaan baris gilir, seperti Arr

Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pelan pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Oct 15, 2023 am 09:15 AM

Pelaksanaan pemantauan tugas giliran dan penjadualan tugas dalam PHP dan MySQL Pengenalan Dalam pembangunan aplikasi web moden, baris gilir tugas adalah teknologi yang sangat penting. Melalui baris gilir, kita boleh beratur beberapa tugasan yang perlu dilaksanakan di latar belakang, dan mengawal masa pelaksanaan dan susunan tugas melalui penjadualan tugas. Artikel ini akan memperkenalkan cara melaksanakan pemantauan dan penjadualan tugas dalam PHP dan MySQL, serta menyediakan contoh kod khusus. 1. Prinsip kerja Baris gilir ialah struktur data masuk dahulu keluar (FIFO) yang boleh digunakan untuk

Di Jawa, apakah perbezaan antara kaedah add() dan kaedah offer() dalam baris gilir? Di Jawa, apakah perbezaan antara kaedah add() dan kaedah offer() dalam baris gilir? Aug 27, 2023 pm 02:25 PM

Baris gilir dalam Java ialah struktur data linear dengan pelbagai fungsi. Baris gilir mempunyai dua titik akhir dan ia mengikut prinsip masuk dahulu keluar (FIFO) untuk memasukkan dan memadam elemennya. Dalam tutorial ini, kita akan mempelajari tentang dua fungsi penting baris gilir dalam Java, iaitu add() dan Offer(). Apakah giliran? Baris gilir dalam Java ialah antara muka yang memanjangkan pakej util dan koleksi. Elemen dimasukkan ke bahagian belakang dan dikeluarkan dari bahagian hadapan. Baris gilir dalam Java boleh dilaksanakan menggunakan kelas seperti senarai terpaut, DeQueue, dan baris gilir keutamaan. Barisan keutamaan ialah bentuk lanjutan baris gilir biasa, di mana setiap elemen mempunyai keutamaan. Kaedah add() baris gilir digunakan untuk memasukkan elemen ke dalam baris gilir. Ia akan menentukan elemen (sebagai

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Sep 13, 2023 am 11:39 AM

Apakah prinsip dan pelaksanaan sistem baris gilir mel PHP? Dengan perkembangan Internet, e-mel telah menjadi salah satu kaedah komunikasi yang sangat diperlukan dalam kehidupan dan pekerjaan harian manusia. Walau bagaimanapun, apabila perniagaan berkembang dan bilangan pengguna meningkat, menghantar e-mel secara langsung boleh membawa kepada kemerosotan prestasi pelayan, kegagalan penghantaran e-mel dan masalah lain. Untuk menyelesaikan masalah ini, anda boleh menggunakan sistem baris gilir mel untuk menghantar dan mengurus e-mel melalui baris gilir bersiri. Prinsip pelaksanaan sistem baris gilir mel adalah seperti berikut: Apabila mel dimasukkan ke dalam baris gilir, apabila perlu menghantar mel, ia tidak lagi secara langsung

Baris gilir dalam rangka kerja Yii: Mengendalikan operasi tak segerak dengan cekap Baris gilir dalam rangka kerja Yii: Mengendalikan operasi tak segerak dengan cekap Jun 21, 2023 am 10:13 AM

Dengan perkembangan pesat Internet, aplikasi telah menjadi semakin penting untuk mengendalikan sejumlah besar permintaan dan tugasan serentak. Dalam kes sedemikian, pengendalian tugas tak segerak adalah penting kerana ini menjadikan aplikasi lebih cekap dan lebih responsif kepada permintaan pengguna. Rangka kerja Yii menyediakan komponen baris gilir mudah yang menjadikan pengendalian operasi tak segerak lebih mudah dan lebih cekap. Dalam artikel ini, kami akan meneroka penggunaan dan kelebihan baris gilir dalam rangka kerja Yii. Apakah itu Baris Gilir Gilir ialah struktur data yang digunakan untuk mengendalikan data dalam susunan dahulu masuk dahulu (FIFO). Pasukan

See all articles