队列在编程中的实际应用
社区服务
火星文
银行
结婚
道具中心
勋章中心
管理操作原因
基本信息
管理团队
管理操作
在线会员
会员排行
版块排行
帖子排行
手机版
小说论坛
用户中心
搜索
银行
猴岛论坛
帖子
用户
版块
帖子
高级搜索
社区服务
签到统计
关闭
选中
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
]
« 返回列表
发帖
回复
关闭