隊列在編程中的實際應用(php)-php技巧
一:隊列的概念、數據結構
隊列(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端口。
Rubytar xzvf ruby-1.9.1-p0./configure --prefix=/usr/local/huiyangrubymake make installGemtar -zxvf d rubygems-1.3.6ruby arlinggem install memcache-client starlingstarlingstarling & //後臺執行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:: -- 從Memcache服務器上刪除一個保存的項目。
Memcache::flush -- 刷新所有Memcache服務器上保存的項目(類似於刪除所有的保存的項目)。
Memcache::getStats -- 獲取當前Memcache服務器運行的狀態。
四:張宴作品HTTPSQS
HTTPSQS(HTTP Simple Queue Service)是一款基於 HTTP GET/POST 協議的輕量級開源簡單消息隊列服務,使用 Tokyo Cabinet 的 B+Tree Key/Value 數據庫來做數據的持久化存儲。
五:隊列的應用
隊列可以很好地異步處理數據傳送和存儲,當你頻繁地向數據庫中插入數據、頻繁地向搜索引擎提交數據,就可採取隊列來異步插入。另外,還可以將較慢的處理邏輯、有併發數量限制的處理邏輯,通過消息隊列放在後臺處理,例如FLV視頻轉換、發送手機短信、發送電子郵件等。
相關文章
-
實現PHP獲取表單數據與HTML嵌入PHP腳本的技巧
常用的自動全局變量如下所示:1、GET方式功能:獲取get方式提交的`數據格式:$_GET[“formelement”]2、POST方式功能:獲取post方式提交的數據格式:$_POST[“formelement”]功能:獲取任意方式提交的數據,$_REQUEST自動全局變量 -
php發展和php應用爲什麼比asp強
PHP原始爲 Personal Home Page的縮寫,現已經正式更名爲 "PHP: Hypertext Preprocessor"的縮寫.注意不是"Hypertext Preprocessor"的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫發展和php應用爲什麼比asp強?就讓小 -
php在服務器執行exec命令失敗的解決方法-php技巧
在平平淡淡的學習、工作、生活中,許多人都寫過作文吧,作文根據寫作時限的不同可以分爲限時作文和非限時作文。相信很多朋友都對寫作文感到非常苦惱吧,下面是小編幫大家整理的奶奶作文9篇,歡迎大家借鑑與參考,希望對大家有 -
PHP學習路線以及PHP優化技巧
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。那麼PHP學習路線以及PHP優化技巧分別是怎樣的 -
學習php編程語言 php常用英語單詞
php 英語單詞,php 常用英語單詞,幫助您快速學習php編程語言!掌握了php 裏面所涉及到的所有英語單詞,能更好的幫助您快速理解php 編程語言,讓您學習php 編程語言的速度快人十倍。abstract 抽象的access 存取、訪問 -
《PHP編程最快明白》第八講:php啓發和小結
同時,有很多函數是可以有多種方法實現的,這需要靈活運用。只有記住了這些函數,才能開發出動態的網站;也只有多練習,整個網站開發一次,才能熟練的`進行下次的開發,才發現自己的不足並改進。很多方法都可以改進,比如這個計數器: -
PHP中php://input和$-POST的區別
PHP是一門高效的網絡編程語言,由於它具有編寫靈活、運行快速等優點,迅速成爲Web程序員的首選語言。以下是小編爲大家搜索整理php中php://input和$_POST的區別,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業 -
php中php://input和$-POST有什麼不同
php://input 允許讀取 POST 的原始數據。和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的 設置。下面是小編爲大家帶來的php中php://input和$_POST有什麼不同的知識,歡迎閱讀。 php中ph -
如何實現PHP獲取表單數據與HTML嵌入PHP腳本
導語:如何實現PHP獲取表單數據與HTML嵌入PHP腳本,下面是小編給大家提供的操作講解,大家可以參考閱讀,更多詳情請關注應屆畢業生考試網。常用的自動全局變量如下所示: 1、GET方式功能:獲取get方式提交的數據格式:$_GET[for -
PHP生成PDF文檔實用技巧
七年級上冊課文論語讀後感精選1《論語》內容廣泛,記載了很多方面的言論,是瞭解中國文化絕對不可不讀的作品。一直以來,我都沒有細心地品讀過這本書,俗話說得好“半部《論語》治天下”,所以我也想進一步瞭解一下孔夫子的思