本**根據前輩的**簡化修改而成
class memcachequeue
private function _initsetheadntail()
/*** 當新增元素時,改變佇列尾的數值
* @param int $step 步長值
* @param bool $reverse 是否反向
* @return null
*/private function _changetail($step=1, $reverse =false)else
memcache_set($this->client, $this.queuename.$this->tail_key,$currenttail,false);
} /**
* 佇列是否為空
* @return bool
*/public function _isempty()
private function _getlock()
} return true;
} private function _unlock()
/*** 獲取當前佇列的長度
* 該長度為理論長度,某些元素由於過期失效而丟失,真實長度<=該長度
* @return int
*/public function getqueuelength()
/*** 新增佇列資料
* @param void $data 要新增的資料
* @return bool
*/public function add($data)
$this->_unlock();
return $result;
} /**
* 取出佇列資料
* @param int $length 要取出的長度(反向讀取使用負數)
* @return array
*/public function get()
$currenthead=memcache_get($this->client,$this->head_key);
$currenthead+=1;
memcache_set($this->client,$this->head_key,$currenthead);
$this->_unlock();//設定完佇列長度後就可以解鎖了
$valuekey=$this->queuename.self::value_key.$currenthead;
$result=memcache_get($this->client,$valuekey);
memcache_delete($this->client, $valuekey, 0);
return $result;
} /**
*重置佇列值過期時間
*/ public function resetvalueexpiretime($key,$value)
/* * 清除所有memcache快取資料
*/public function memflush()
public function getqueuename()
public function getexpire()
}
PHP下用Memcache 實現訊息佇列
memcache 一般用於快取服務。但是很多時候,比如乙個訊息廣播系統,需要乙個訊息佇列。直接從資料庫取訊息,負載往往不行。如果將整個訊息佇列用乙個key快取到memcache裡面,對於乙個很大的訊息佇列,頻繁進行進行大資料庫的序列化 和 反序列化,有太耗費。下面是我用php 實現的乙個訊息佇列,只...
memcache的簡單使用示例
在實際應用中我們會快取從資料庫中查出來的結果集,以md5 sql 為 key,結果集為值。以只是在php簡單應用 建立memcache鏈結 memcache new memcache memcache connect 127.0.0.1 11211 新增資料 memcache add name 王召...
用CHttpFile實現簡單的GET POST資料
afxmessagebox 不能找到網頁檔案!sess.close 二 post 資料,比如用於上報,提交資訊等 cstring strhttpname http localhost testreg regform.aspx 需要提交資料的頁面 cstring strformdata usernam...