队列在编程中的实际应用(php)-php技巧
队列在编程中的实际应用(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端口。
Rubytar xzvf ruby-1.9.1-p0./configure --prefix=/usr/local/huiyangrubymake make installGemtar -zxvf d rubygems-1.3.6ruby arlinggem install memcache-client starlingstarlingstarling & //后台执行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:: -- 从Memcache服务器上删除一个保存的项目。
Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)。
Memcache::getStats -- 获取当前Memcache服务器运行的状态。
四:张宴作品HTTPSQS
HTTPSQS(HTTP Simple Queue Service)是一款基于 HTTP GET/POST 协议的轻量级开源简单消息队列服务,使用 Tokyo Cabinet 的 B+Tree Key/Value 数据库来做数据的持久化存储。
五:队列的应用
队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。
-
生态性环艺设计发展的趋势
生态设计,也可以称作绿色设计或者生命周期设计或者环境设计。生态设计是指在设计过程中,遵从本地化、节约化、自然化等原则,尽最大可能考虑到环境因素,减少对环境的危害,实现设计的可持续性和再循环。下面是本站小编整理的生态性环艺设计发展的趋势相关内容,希望对你...
-
《培训调查意见表》Word表格
1.基本情况姓名性别年龄部门职务填表时间2.对以往培训的感知(可复选)(1)以往培训形式□课堂讲授式□小组讨论式□角色扮演式□游戏训练□案例分析(2)以往参加培训原因□自己要求□领导指派□企业要求□自费学习(3)培训后技能、绩效提升是否明显□明显提升□稍有提升□效...
-
平面设计自学小贴士
怎么自学平面设计是一个大学问,学得好的就可以进4A公司,前途光明。所以,接下来小编就和大家一起来了解关于自学平面设计的知识,希望对大家有帮助!自学平面设计的小贴士一、每天至少临摹一件作品,重点学习其版式构图、色彩搭配,不懂的马上上论坛问!(时间:1-2h)二、...
-
Word设置图片背景透明教程
在Word中将图片背景变成透明色,以达到更理想的融合效果。下面本站小编为大家收集整理了关于Word设置图片背景透明的方法,欢迎大家参考学习Word设置图片背景透明教程篇1①插入所需要处理的图片。②选中图片,选择“格式”选项,单击“颜色”选项,在“颜色”面板中选择...