这是基于队列的实现代码写的PHP

PHP类代码:
复制代码代码如下所示:
< PHP
类MQ {
公共静态客户端;
私有静态m_real美元;
私有静态m_front美元;
私有静态m_data美元=阵();
const queue_max_num = 100000000;
const queue_front_key = '_queue_item_front;
const queue_real_key = '_queue_item_real;
Public static function setupMq ($conf) {
自::客户= memcache_pconnect美元(合会);
自::m_real美元= memcache_get(自::::自美元的客户,queue_real_key);
自::m_front美元= memcache_get(自::::自美元的客户,queue_front_key);
如果(!isset(自::m_real美元)| | emptyempty(自::$ m_real)){
自我:$ = 0;
}
如果(!isset(自::m_front美元)| | emptyempty(自::$ m_front)){
自::m_front = 0美元;
}
返回::$客户机;
}
公共静态函数添加($队列,$ data){
$结果= false;
如果(自::::m_real美元<自queue_max_num){
如果(memcache_add(自::美元美元的客户,排队。自::m_real美元,美元数据)){
自::mqrealchange();
结果=真美元;
}
}
返回$结果;
}
公共静态函数获取($键,计数器){
$ = 0;
为($我=自我::m_front美元;我<自::m_front +美元美元美元计数;i++){
如果($ datatmp = memcache_get(自::美元美元美元的关键客户。我)){
自::m_data { } = datatmp美元美元;
memcache_delete(自::美元美元美元的客户,我的重点。);
美元+;
}
}
如果($ > 0){
自::mqfrontchange(美元数);
}
回归自我::m_data美元;
}
静态函数mqrealchange(){
memcache_add(自::::自美元的客户,queue_real_key,0);
自::m_real美元= memcache_increment(自::::自美元的客户,queue_real_key,1);
}
静态函数mqfrontchange($num){
memcache_add(自::::自美元的客户,queue_front_key,0);
自::m_front美元= memcache_increment(自::::自美元的客户,queue_front_key,$num);
}
公共静态函数mflush($ memcache_obj){
memcache_flush($ memcache_obj);
}
公共静态函数调试(){
echo'real:'自我::m_real美元。;
echo'front:'自我::m_front美元。;
用于过程数据echo'wait:'。intval(自::::m_real美元自m_front美元);

回声';
print_r(自::m_data美元);
回声';
}
}
定义('flush_mq ',0); / /清除所有数据
定义('is_add ',0); / /数据集
mobj美元= MQ::setupmq('127.0.0.1 ','11211);
如果(flush_mq){
MQ::mflush($ mobj);
{人}
如果(is_add){
MQ::添加('user_sync ','1test);
MQ::添加('user_sync ','2test);
MQ::添加('user_sync ','3test);
MQ::添加('user_sync ','4test);
MQ::添加('user_sync ','5test);
MQ::添加('user_sync ','6test);
{人}
MQ::把('user_sync ',10);
}
}
MQ::调试();
>

使用方法
复制代码代码如下所示:
MQ::setupmq('127.0.0.1 ','11211 '); / /连接
MQ::添加($键,$值);将数据添加到队列中
MQ::添加($键,$值);将数据添加到队列中
MQ::添加($键,$值);将数据添加到队列中
MQ::添加($键,$值);将数据添加到队列中
MQ::添加($键,$值);将数据添加到队列中
MQ::添加($键,$值);将数据添加到队列中
MQ:获取($键,10);获取一定数量的数据