<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

            分析PHP隊列是什么

            時間:2024-12-22 04:52:21 php語言 我要投稿
            • 相關推薦

            分析PHP隊列是什么

              PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!今天,小編為大家搜索整理了PHP隊列是什么,希望大家能有所收獲,更多精彩內容請持續關注我們考試網!

              什么是隊列,是先進先出的線性表,在具體應用中通常用鏈表或者數組來實現,隊列只允許在后端進行插入操作,在前端進行刪除操作。

              什么情況下會用了隊列呢,并發請求又要保證事務的完整性的時候就會用到隊列,當然不排除使用其它更好的方法,知道的不仿說說看。

              隊列還可以用于減輕數據庫服務器壓力,我們可以將不是即時數據放入到隊列中,在數據庫空閑的時候或者間隔一段時間后執行。比如訪問計數器,沒有必要即時的執行訪問增加的Sql,在沒有使用隊列的時候sql語句是這樣的,假設有5個人訪問:

              update table1 set count=count+1 where id=1

              update table1 set count=count+1 where id=1

              update table1 set count=count+1 where id=1

              update table1 set count=count+1 where id=1

              update table1 set count=count+1 where id=1

              而使用隊列這后就可以這樣:

              update table1 set count=count+5 where id=1

              減少sql請求次數,從而達到減輕服務器壓力的效果, 當然訪問量不是很大網站根本沒有這個必要。

              下面一個隊列類:

              /**

              * 隊列

              *

              * @author jaclon

              *

              */

              class Queue

              {

              private $_queue = array();

              protected $cache = null;

              protected $queuecachename;

              /**

              * 構造方法

              * @param string $queuename 隊列名稱

              */

              function __construct($queuename)

              {

              $this->cache =& Cache::instance();

              $this->queuecachename = queue_ . $queuename;

              $result = $this->cache->get($this->queuecachename);

              if (is_array($result)) {

              $this->_queue = $result;

              }

              }

              /**

              * 將一個單元單元放入隊列末尾

              * @param mixed $value

              */

              function enQueue($value)

              {

              $this->_queue[] = $value;

              $this->cache->set($this->queuecachename, $this->_queue);

              return $this;

              }

              /**

              * 將隊列開頭的一個或多個單元移出

              * @param int $num

              */

              function sliceQueue($num = 1)

              {

              if (count($this->_queue) < $num) {

              $num = count($this->_queue);

              }

              $output = array_splice($this->_queue, 0, $num);

              $this->cache->set($this->queuecachename, $this->_queue);

              return $output;

              }

              /**

              * 將隊列開頭的單元移出隊列

              */

              function deQueue()

              {

              $entry = array_shift($this->_queue);

              $this->cache->set($this->queuecachename, $this->_queue);

              return $entry;

              }

              /**

              * 返回隊列長度

              */

              function size()

              {

              return count($this->_queue);

              }

              /**

              * 返回隊列中的第一個單元

              */

              function peek()

              {

              return $this->_queue[0];

              }

              /**

              * 返回隊列中的一個或多個單元

              * @param int $num

              */

              function peeks($num)

              {

              if (count($this-&gt

              ;_queue) < $num) {

              $num = count($this->_queue);

              }

              return array_slice($this->_queue, 0, $num);

              }

              /**

              * 消毀隊列

              */

              function destroy()

              {

              $this->cache->remove($this->queuecachename);

              }

              }

            【分析PHP隊列是什么】相關文章:

            PHP隊列是什么10-29

            php語言redis隊列操作實例08-19

            php Memcache中實現消息隊列08-21

            如何使用php操作redis隊列實例09-15

            php是什么11-13

            PHP遞歸效率分析08-25

            PHP與ASP的分析對比10-27

            PHP 死鎖問題分析05-19

            php中使用redis隊列操作實例代碼05-16

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院