队列在编程中的实际应用
社区服务
火星文
银行
结婚
道具中心
勋章中心
管理操作原因
基本信息
管理团队
管理操作
在线会员
会员排行
版块排行
帖子排行
手机版
小说论坛
用户中心
搜索
银行
猴岛论坛
帖子
用户
版块
帖子
高级搜索
虚拟交易发布
社区服务
综合游戏交流
影音天地
互刷互粉
签到统计
关闭
选中
1
篇
全选
猴岛论坛
电脑百科
队列在编程中的实际应用
发帖
回复
倒序阅读
最近浏览的帖子
最近浏览的版块
« 返回列表
新帖
悬赏
任务
交易贴
自动发卡
拍卖
红包
际遇红包
1
个回复
队列在编程中的实际应用
楼层直达
紙鶴
ZxID:13342876
关注Ta
注册时间
2010-09-30
最后登录
2019-10-10
发帖
21624
在线
2121小时
精华
0
DB
1811
威望
4345
保证金
0
桃子
0
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
等级:
大元帅
举报
只看楼主
使用道具
楼主
发表于: 2011-01-19
0
一:队列的概念、数据结构
队列(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 数据库来做数据的持久化存储。
五:队列的应用
队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。
本帖de评分:
共
1
条评分
DB +10
︶ㄣ半支煙℡
DB
+10
我很赞同
隐藏
本帖de打赏:
共
条打赏
隐藏
打赏
收藏
新鲜事
相关主题
在ASP.net编程中的十种安全措施
十步完成PC的启动 BIOS在启动中的作用
组装机在使用中的注意事项
公开在XP中的28个秘密
[Windows系统应用交流]公开在XP中的一个秘密武器!可以完整清除垃圾文件
在网络发达的社会中 网站是信息传播的支柱
回复
引用
鲜花[
0
]
鸡蛋[
0
]
゛蝣蕩啲龍っ
ZxID:7865773
关注Ta
注册时间
2009-07-07
最后登录
2018-11-27
发帖
11129
在线
5088小时
精华
57
DB
4
威望
641
保证金
0
桃子
1
鲜花
0
鸡蛋
0
访问TA的空间
加好友
用道具
发消息
加好友
他的帖子
对该用户使用道具
等级:
元老
配偶:
゛遊蕩的凨つ
‘燕鸥’是种水鸟,听说,它们会从几千里外,飞回自己的家,而且,是‘情有独钟’,终身不换伴侣 ..
举报
只看该作者
沙发
发表于: 2011-01-20
0
感谢分享
本帖de评分:
共
0
条评分
隐藏
本帖de打赏:
共
条打赏
隐藏
回复
引用
新鲜事
鲜花[
0
]
鸡蛋[
0
]
« 返回列表
发帖
回复
关闭