PHP中關於佇列的實際應用

2021-06-21 15:55:02 字數 1793 閱讀 1491

一:佇列的概念、資料結構

佇列(queue)是運算受到限制的一種線性表。只允許在表的一端進行插入,而在另一端進行刪除元素的線性表。隊尾(rear)是允許插入的一端。隊頭(front)是允許刪除的一端。空佇列是不含元素的空表。

假設有個佇列q=(a1,a2,…,an),則a1為隊頭元素,an為隊尾元素。元素入隊的次序為a1,a2,…,an,而出隊的次序為a1,a2,…,an。可見佇列的操作是按照先進先出的原則進行的。

其他詳細的介紹請在網上搜尋很多資料。

二:php的佇列

在php中佇列以陣列的形式表現。陣列中的第乙個元素作為隊頭,最後乙個元素作為隊尾,這樣就可以操作這個佇列了。

結果就是

網上有很多封裝好的類,可以直接使用。

array_push:將乙個或多個單元壓入陣列的末尾(入棧)

array_unshift:在陣列開頭插入乙個或多個單元

array_pop:將陣列最後乙個單元彈出(出棧)

array_shift:將陣列開頭的單元移出陣列

三:ruby starling

starling是乙個支援memcache協議的輕量級持久化伺服器。starling是讓建立網路訪問佇列或者多個佇列異常簡單,也就是說多點和多台機器間的非同步工作程序。它是著名微部落格**twitter開發用來處理大量的佇列訊息,以及保持服務的響應。starling已經在生產環境中使用,不僅是twitter在使用,fiveruns同樣在使用。fiveruns甚至還根據自己的應用做了改進。

starling和memcache使用的是乙個協議只是埠不一樣。starling使用的是22122埠,memcache使用的是11211埠。

ruby tar xzvf ruby-1.9.1-p0.tar.gz cd ruby-1.9.1-p0 ./configure --prefix=/usr/local/huiyangruby make make install   gem tar -zxvf rubygems-1.3.6.tgz cd rubygems-1.3.6 ruby setup.rb   starling gem install memcache-client starling starling starling & //後台執行 starling_top //檢視ps資訊

接下來你就可以使用佇列做自己的事情啦。starling和memcache用法一樣,兩者配合處理更佳。

使用memcache::addserver可以建立乙個memcache連線池。他不同於connect與pconnect他是在有請求是才連線,無則埠連線。

memcache::connect -- 開啟乙個到memcache的連線。

memcache::pconnect -- 開啟乙個到memcache的長連線。

memcache::close -- 關閉乙個memcache的連線。

memcache::set -- 儲存資料到memcache伺服器上。

memcache::get -- 提取乙個儲存在memcache伺服器上的資料。

memcache::replace -- 替換乙個已經存在memcache伺服器上的專案(功能類似memcache::set)。

memcache::delete -- 從memcache伺服器上刪除乙個儲存的專案。

memcache::flush -- 重新整理所有memcache伺服器上儲存的專案(類似於刪除所有的儲存的專案)。

memcache::getstats -- 獲取當前memcache伺服器執行的狀態。

四:佇列的應用

php實際運用,佇列在程式設計中的實際應用 php

一 佇列的概念 資料結構 佇列 queue 是運算受到限制的一種線性表。只允許在表的一端進行插入,而在另一端進行刪除元素的線性表。隊尾 rear 是允許插入的一端。隊頭 front 是允許刪除的一端。空佇列是不含元素的空表。假設有個佇列q a1,a2,an 則a1為隊頭元素,an為隊尾元素。元素入隊...

棧和佇列的實際應用 小貓釣魚

include include include struct queue struct stack int main else book s.data s.top 0 q1.data q1.tail s.data s.top 先判斷一下小哈手中的牌,如果此時小哈手中已無牌,遊戲結束 if q1.he...

php訊息佇列的應用

歡迎加入,新群號碼 99640845 最近打算開發乙個新功能,計畫應用訊息佇列。以前對訊息佇列都是簡單的理論了解,真正應用之後把自己的感覺和一些理解整理下來。說正事分割線 具體的業務場景如下 使用者下單 生成訂單 支付 返回支付資訊 就是正常的訂單邏輯,現在需要在中間做乙個功能類似於,統計每張訂單的...