队列在编程中的实际应用(php)_php技巧
一:队列的概念、数据结构
队列(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)

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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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

deque en Python est un deque de bas niveau hautement optimisé, utile pour implémenter des files d'attente et des piles Pythoniques élégantes et efficaces, qui sont les types de données basés sur des listes les plus courants en informatique. Dans cet article, Yun Duojun apprendra ce qui suit avec vous : Commencez à utiliser deque pour afficher et ajouter efficacement des éléments. Accédez à n'importe quel élément de deque. Utilisez deque pour créer une file d'attente efficace. une liste Python et des éléments contextuels. Les opérations sont généralement très efficaces. Si la complexité temporelle est exprimée en Big O, alors on peut dire qu'ils sont O(1). Et lorsque Python doit réallouer de la mémoire pour augmenter la liste sous-jacente afin d'accepter de nouveaux éléments, ces

À mesure que les applications Web continuent de se développer, nous devons gérer un grand nombre de tâches pour maintenir la stabilité et la disponibilité de l'application. Utiliser un système de file d’attente est une solution. ThinkPHP6 fournit un système de file d'attente intégré pour gérer les tâches. Cependant, gérer un grand nombre de tâches nécessite une meilleure gestion des files d'attente, ce qui peut être réalisé à l'aide de Supervisor. Cet article explique comment utiliser Supervisor pour gérer les files d'attente ThinkPHP6. Avant cela, nous devons comprendre quelques concepts de base : le système de file d'attente est

Application de la technologie de file d'attente au délai de message et aux nouvelles tentatives de message dans PHP et MySQL Résumé : Avec le développement continu des applications Web, la demande de traitement hautement simultané et de fiabilité du système devient de plus en plus élevée. En tant que solution, la technologie de file d'attente est largement utilisée dans PHP et MySQL pour implémenter des fonctions de délai de message et de nouvelle tentative de message. Cet article présentera l'application de la technologie de file d'attente dans PHP et MySQL, y compris les principes de base des files d'attente, les méthodes d'utilisation des files d'attente pour implémenter le délai de message et les méthodes d'utilisation des files d'attente pour implémenter les nouvelles tentatives de message, et donnera

Analyse des performances et stratégie d'optimisation de JavaQueue Résumé de la file d'attente : La file d'attente (file d'attente) est l'une des structures de données couramment utilisées en Java et est largement utilisée dans divers scénarios. Cet article abordera les problèmes de performances des files d'attente JavaQueue sous deux aspects : l'analyse des performances et les stratégies d'optimisation, et donnera des exemples de code spécifiques. Introduction La file d'attente est une structure de données premier entré, premier sorti (FIFO) qui peut être utilisée pour implémenter le mode producteur-consommateur, la file d'attente des tâches du pool de threads et d'autres scénarios. Java fournit une variété d'implémentations de files d'attente, telles que Arr

Implémentation de la surveillance des tâches de file d'attente et de la planification des tâches dans PHP et MySQL Introduction Dans le développement d'applications Web modernes, la file d'attente de tâches est une technologie très importante. Grâce aux files d'attente, nous pouvons mettre en file d'attente certaines tâches qui doivent être exécutées en arrière-plan et contrôler le temps d'exécution et l'ordre des tâches grâce à la planification des tâches. Cet article présentera comment implémenter la surveillance et la planification des tâches dans PHP et MySQL, et fournira des exemples de code spécifiques. 1. Principe de fonctionnement de la file d'attente La file d'attente est une structure de données premier entré, premier sorti (FIFO) qui peut être utilisée pour

La file d'attente en Java est une structure de données linéaire avec plusieurs fonctions. La file d'attente a deux points de terminaison et suit le principe premier entré, premier sorti (FIFO) pour insérer et supprimer ses éléments. Dans ce didacticiel, nous découvrirons deux fonctions importantes des files d'attente en Java, à savoir add() et Offer(). Qu'est-ce qu'une file d'attente ? Queue en Java est une interface qui étend les packages util et collection. Les éléments sont insérés dans le backend et supprimés du frontend. Les files d'attente en Java peuvent être implémentées à l'aide de classes telles que les listes chaînées, DeQueue et les files d'attente prioritaires. Une file d'attente prioritaire est une forme étendue d'une file d'attente normale, dans laquelle chaque élément a une priorité. La méthode add() de la file d'attente est utilisée pour insérer des éléments dans la file d'attente. Il définira l'élément (comme

Quel est le principe et la mise en œuvre du système de file d'attente de courrier PHP ? Avec le développement d’Internet, le courrier électronique est devenu l’un des moyens de communication indispensables dans la vie quotidienne et professionnelle des gens. Cependant, à mesure que l'entreprise se développe et que le nombre d'utilisateurs augmente, l'envoi direct d'e-mails peut entraîner une dégradation des performances du serveur, un échec de livraison des e-mails et d'autres problèmes. Pour résoudre ce problème, vous pouvez utiliser un système de file d'attente de messagerie pour envoyer et gérer des e-mails via une file d'attente série. Le principe de mise en œuvre du système de file d'attente de courrier est le suivant : Lorsque le courrier est mis en file d'attente, lorsqu'il est nécessaire d'envoyer le courrier, il ne l'est plus directement

Avec le développement rapide d'Internet, les applications sont devenues de plus en plus importantes pour gérer un grand nombre de requêtes et de tâches simultanées. Dans de tels cas, la gestion des tâches asynchrones est essentielle car cela rend l'application plus efficace et mieux réactive aux demandes des utilisateurs. Le framework Yii fournit un composant de file d'attente pratique qui rend la gestion des opérations asynchrones plus facile et plus efficace. Dans cet article, nous explorerons l'utilisation et les avantages des files d'attente dans le framework Yii. Qu'est-ce qu'une file d'attente Une file d'attente est une structure de données utilisée pour gérer les données dans l'ordre premier entré, premier sorti (FIFO). Équipe
