memche訊息佇列的原理就是在key上做文章,用以做乙個連續的數字加上字首記錄序列化以後訊息或者日誌。然後通過定時程式將內容落地到檔案或者資料庫。
php實現訊息佇列的用處比如在做傳送郵件時傳送大量郵件很費時間的問題,那麼可以採取佇列。
方便實現佇列的輕量級佇列伺服器是:
starling支援memcache協議的輕量級持久化伺服器
beanstalkd輕量、高效,支援持久化,每秒可處理3000左右的佇列
php中也可以使用memcache/memcached來實現訊息佇列。
[php]view plain
copy
print?
<?php
/*** memcache 訊息佇列類
*/class
qmc
return
$mc;
} /**
* mc 計數器,增加計數並返回新的計數
* @param string $key 計數器
* @param int $offset 計數增量,可為負數.0為不改變計數
* @param int $time 時間
* @return int/false 失敗是返回false,成功時返回更新計數器後的計數
*/static
public
function
set_counter(
$key
, $offset
, $time
=0 )
$offset
= intval
( $offset
);
if(
$offset
> 0 )elseif
( $offset
< 0 )
return
$val
; }
/*** 寫入佇列
* @param string $key
* @param mixed $value
* @return bool
*/static
public
function
input(
$key
, $value
) /**
* 讀取佇列裡的資料
* @param string $key
* @param int $max 最多讀取條數
* @return array
*/static
public
function
output(
$key
, $max
=100 )
return
$out
; }
} /**
使用方法:
qmc::input($key, $value );//寫入佇列
$list = qmc::output($key);//讀取佇列
*/?>
基於php共享記憶體實現的訊息佇列:
memcache實現訊息佇列例項
memche訊息佇列的原理就是在key上做文章,用以做乙個連續的數字加上字首記錄序列化以後訊息或者日誌。然後通過定時程式將內容落地到檔案或者資料庫。php實現訊息佇列的用處比如在做傳送郵件時傳送大量郵件很費時間的問題,那麼可以採取佇列。方便實現佇列的輕量級佇列伺服器是 starling支援memca...
Memcache 中實現訊息佇列
memcache 一般用於快取服務。但是很多時候,比如乙個訊息廣播系統,需要乙個訊息佇列。直接從資料庫取訊息,負載往往不行。如果將整個訊息佇列用乙個key快取到memcache裡面,對於乙個很大的訊息佇列,頻繁進行進行大資料庫的序列化 和 反序列化,有太耗費。下面是我用php 實現的乙個訊息佇列,只...
PHP下用Memcache 實現訊息佇列
memcache 一般用於快取服務。但是很多時候,比如乙個訊息廣播系統,需要乙個訊息佇列。直接從資料庫取訊息,負載往往不行。如果將整個訊息佇列用乙個key快取到memcache裡面,對於乙個很大的訊息佇列,頻繁進行進行大資料庫的序列化 和 反序列化,有太耗費。下面是我用php 實現的乙個訊息佇列,只...