Redis實現簡單的訊息佇列

來源:互聯網
上載者:User

標籤:完整   資料表   lis   自身   bubuko   發送   介面   src   導致   

 

1、問:什麼是訊息佇列?

   答:是一個訊息的鏈表,是一個非同步處理的資料處理引擎。

2、問:有什麼好處?

     答:不僅能夠提高系統的負荷,還能夠改善因網路阻塞導致的資料缺失。

3、問:用途有哪些?

     答:郵件發送、手機簡訊發送,資料表單提交、圖片產生、視頻轉換、日誌儲存等。

4、問:有哪些軟體?

     答:ZeroMQ、Posix、SquirrelMQ、Redis、QDBM、Tokyo Tyrant、HTTPSQS等(linux平台下)。

5、問:怎麼實現?

     答:顧名思義,先入隊,後出隊;先把資料丟到訊息佇列(入隊),後根據相應的key來擷取資料(出隊)。

6、問:Redis可以做訊息佇列?

     答:首先,redis設計用來做緩衝的,但是由於它自身的某種特性使得它可以用來做訊息佇列,它有幾個阻塞式的API可以使用,正是這些阻塞式的API讓其有能力做訊息佇列;另外,做訊息佇列的其他特性例如FIFO(先入先出)也很容易實現,只需要一個list對象從頭取資料,從尾部塞資料即可;redis能做訊息佇列還得益於其list對象blpop brpop介面以及Pub/Sub(發布/訂閱)的某些介面,它們都是阻塞版的,所以可以用來做訊息佇列。

7、問:怎麼做(基於ThinkPHP)?

     答:7.1 安裝redis,過程(略);

       7.2 安裝php-redis擴充,過程(略);

          7.3 貼代碼

                          圖1 入隊

          

                                             圖2 入隊結果

          

                                              圖3 出隊

          

                                              圖4 出隊結果

          

                                               圖5 完整代碼

           

8、小結:redis的lPush命令將一個或多個值插入到列表頭部與rPush與rPush相反;rPop命令用於溢出並返回列表的最後一個元素與lPop相反。

Redis實現簡單的訊息佇列

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.