大型的 PHP應用 ,通常使用什麼應用做 訊息佇列 的?

時間 2021-05-30 00:02:49

1樓:eechen

Redis可以用有序列表list這個資料結構實現佇列,lpush入隊,rpop出隊,左進右出.

需要的話,開啟AOF日誌實現資料持久化:

另外,PHP的array_push和array_shift也能模擬佇列(先進先出)實現入隊和出隊:

<?

php$in

='d'

;$queue

=array

('a'

,'b'

,'c'

);array_push

($queue

,$in

);// 入隊等價於 $queue = $in;

$out

=array_shift

($queue

);// 出隊

echo

count

($queue

);// 佇列長度

var_export

($queue

);array(0

=>'b',

1=>'c',

2=>'d',

)SPL佇列SplQueue:

佇列(Queue)-Swoole-Swoole文件中心

PHP的SPL佇列SplQueue的效能比array模擬的佇列更好.

在乙個大併發的伺服器程式上,建議使用SplQueue作為佇列資料結構.

<?

php$in

='a'

;$queue

=new

SplQueue

();$queue

->push

($in

);// 入隊(enqueue)

$out

=$queue

->shift

();// 出隊(dequeue)

echo

count

($queue

);// 佇列長度

var_export

($queue

);// SplQueue::__set_state(array())

也就是說,PHP執行在記憶體常駐的模式下,比如Swoole模式,可以用內建的array或SplQueue實現簡單的佇列儲存.

2樓:王瑞珩

這個要看你的應用場景,一般來說用redis比較簡單,但是redis不能實現訊息沒有正常處理,其他程序仍然能夠處理這個訊息的情況,也就是沒有對訊息有乙個處理完成確認的過程。

如果要完整的訊息佇列,用過的有:gearman,rabbitmq, 都是不錯的。

為什麼react比vue更適合大型應用?

前端361 1,vue的模板寫法在元件資料較多時,資料和模板強相關,模板不能動態抽離為函式,而在react中,jsx可以很方便的抽離為函式,雖然vue也可以在render中寫jsx,但在模板中無法使用this 2,高階元件的寫法上,react可以更好的使用,維護,vue中高階元件大部分情況下時使用m...

為什麼通常不主張抗生素區域性應用?

繁星 太可怕了,我是左氧氟沙星過敏的,眼睛痛,用了左氧氟沙星眼藥水,才三四個小時,眼睛就腫到睜不開了。隔天去醫院給我又用了頭孢類口服藥片,也是才三四小時,半張臉腫了。晚上去掛急診,頭孢曲松鈉皮試過敏,又換成左氧氟沙星輸液,據說不用皮試,結果才三分鐘手背出現紅腫,而且癢,又觀察一分鐘,這個手臂都起疹子...

如何評價 MIUI 的內建應用中大量使用 HTML5 製作的網頁介面來展示內容?

相裡 Felix 大環境是對運營的要求越來越高。要進一步做到精細化運營的前提和要求是需要有快速試錯的手段。在當前階段 Hybird 是價效比更高的選擇。MIUI 早期的特色是 功能 其他手機沒有的功能我們嗖嗖就給上了,填補空白,大快人心。做功能當然是 Native 好,效能又好又穩定,使用者也樂於公...