首頁 >後端開發 >php教程 >memcache 用PHP寫的基於Memcache的Queue實作程式碼

memcache 用PHP寫的基於Memcache的Queue實作程式碼

WBOY
WBOY原創
2016-07-29 08:47:19824瀏覽

php類別程式碼:

複製程式碼程式碼如下:


class MQ{
public static $client; front
=$m_realrealyrealrealdrealdrealdrealddic n;hem 私有; ();
const QUEUE_MAX_NUM = 100000000;
const QUEUE_FRONT_KEY = '_queue_item_front';
const QUEUE_REAL_KEY = '_queue_itache_real'; ct($conf);
self ::$m_real = memcache_get(self::$client, self::QUEUE_REAL_KEY);
self::$m_front = memcache_get(self::$client, self::QUEUE_FRONT_KEY);
if ($1iss)(f::f m_real) ||emptyempty(self::$m_real)) {
self::$real= 0;
}
if (!isset(self::$m_front) ||emptyempty(self::$m_front)) {
self::$m_front = 0;
}
回傳self::$client;
}
公共靜態函式add($queue, $data) {
$result = false;
if (self::$m_real if (memcache_add(self::$client, $queue.self::$m_real, $data)) {
self::mqRealChange(); }
$結果=真;
}
}
}
}
}
}
} $結果;
}
公共靜態函數get($key, $count) {
$num = 0;
for ($i=self::$m_front;$i<:>if ($dataTmp = memcache_get(self::$client, $key.$i)) {
self::$m_data[] = $dataTmp;
memcache_delete(self::$client, $key.$i );
$num++;
}
}
if ($num>0) {
self::mqFrontChange($num);
}
回傳私有memcache_add(self::$client, self::QUEUE_REAL_KEY, 0);
self::$m_real = memcache_increment(self::$client, self::QUEUE_REAL_KEY, 1);
}
私有函數(mnumcm)$enum {
memcache_add(self::$client, self::QUEUE_FRONT_KEY, 0);
self::$m_front = memcache_increment(self::$client, self::QUEUE_FRONT_KEY, $num); $memcache_obj) {
memcache_flush($memcache_obj);
}
public static function Debug() {
echo 'real:'.self::$m_real."
/r/n"; e 'chofront' .self::$m_front."
/r/n";
echo '等待進程資料:'.intval(self::$m_real - self::$m_front);
echo "
/r/ n";
回顯「」;
print_r(self::$m_data);
回顯「」;
}
}
define('FLUSH_MQ',0);//清除所有資料
define('IS_ADD',0);//設定資料
$mobj = MQ::setupMq('127.0.0.1','11211 ');
if (FLUSH_MQ) {
MQ::mflush($mobjj);
} else {
if (IS_ADD) {
MQ::add('user_sync', '1test');
MQ::add('user_sync', '2test');
MQ::add('user_sync',user_sync' '3test');
MQ::add('user_sync', '4test');
MQ::add('user_sync', '5test');
MQ::add('user_sync', '6test');
} else {
MQ::get('user_sync', 10);
}
}
MQ::Debug();
? >


使用方法



複製程式碼


程式碼如下:

MQ::setupMq('127.0.0.1','11211'); ) ;//新增資料佇列MQ::add($key, $value);//新增資料佇列MQ::add($key, $value);//新增資料佇列MQ::add ($ key, $value);//新增資料到佇列

MQ::add($key, $value);//新增資料到佇列

MQ::add($key, $value);//新增資料到佇列
MQ:get($key, 10);//提取一定數量的資料


以上就介紹了memcache使用PHP編寫的基於Memcache的Queue實作程式碼,包含了memcache方面的內容,希望對PHP教程有興趣的朋友有所幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn