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


Posted in PHP onSeptember 04, 2010

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

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

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

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

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

二:PHP的队列

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

队列在编程中的实际应用(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用法一样,两者配合处理更佳。

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

使用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)

PHP 相关文章推荐
如何隐藏你的.php文件
Jan 04 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
php利用gd库为图片添加水印
Nov 09 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
完美的php分页类
Oct 24 PHP
php处理抢购类功能的高并发请求
Feb 08 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
php生成短网址/短链接原理和用法实例分析
May 29 PHP
PHP7 整型处理机制修改
Mar 09 PHP
php生成随机密码的三种方法小结
Sep 04 #PHP
PHP安全技术之 实现php基本安全
Sep 04 #PHP
小文件php+SQLite存储方案
Sep 04 #PHP
PHP中文件上传的一个问题
Sep 04 #PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 #PHP
PHP开发需要注意的安全问题
Sep 01 #PHP
php中函数的形参与实参的问题说明
Sep 01 #PHP
You might like
分享一个Laravel好用的Cache宏
2015/03/02 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
javascript multibox 全选
2009/03/22 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
js生成word中图片处理方法
2018/01/06 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python3写入文件常用方法实例分析
2015/05/22 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
JAVA中的关键字有什么特点
2014/03/07 面试题
sealed修饰符是干什么的
2012/10/23 面试题
好军嫂事迹材料
2014/01/15 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
Python图片检索之以图搜图
2021/05/31 Python