Redis訂閱和發佈模式和Redis事務

------------------- Redis訂閱和發佈模式-------------------
1,概念
    Redis發佈訂閱發佈/訂閱)是一種消息通訊模式:
    發送者(酒館)發送消息,
    訂閱者(子)接收消息。
    Redis的客戶端能夠訂閱任意數量的頻道。redis

2,訂閱頻道:訂閱個指定頻道的信息微信

3,發佈頻道消息:將信息消息發送到指定的頻道頻道ide

4,應用場景
    1,今日頭條訂閱號,×××系統
    2,即便通訊系統
    3中,羣聊部落系統(微信羣)測試

5,測試實踐:微信班級羣class:20170101
    1,學生C
        訂閱一個主題叫:class:20170101 > subscribe class:20170101
    2,學生A針對class:20170101主體發送消息,那麼全部訂閱該主題的用戶都可以接收到該數據。
        >出版類:20170101! 「世界你好我是」
    3,學生乙針對等級:20170101主體發送消息,那麼全部訂閱該主題的用戶都可以接收到該數據
        >出版類:20170101「你好我是B「
    展現學生C接受到的A \ B同窗發送過來的消息信息
        1)」subscribe「
        2)」class:20170101「
        3)(integer)1
        1)」message「
        2)」class:20170101 「
        3)」hello world!I am a「
        1)」message「
        2)」class:20170101「
        3)」hello word!I am B「事務

------------------- Redis事務-------------------
1,概念:
    redis中的事務是一組命令的集合。事務同命令同樣都是Redis的的最小執行單位,一個事務中的命令要麼都執行,要麼都不執行。get

2,事務的兩種屬性
    1,事務是一個單獨的隔離操做:事務中的全部命令都會序列化,按順序的執行事務在執行的過程當中,不會被其餘客戶端發送過來的命令請求所打斷
    。2,redis事務是原子。原子意味着要什麼全部的命令都執行,要麼都不執行。it

3,事務從開始到執行經歷的三個階段
    1,開始事務:多
    >多 - 肯定class

    2,命令入隊
    > set「strOne」「hello」
    >設置「strTwo」「world」
    >設置「strThree」「!」監控

    3,執行事務:exec
    > exec序列化

4,事務執行是常見錯誤:
    1,語法錯誤:語法錯誤指令不存在或命令參數的個數不對
    。2,運行錯誤:運行錯誤指令執行時出現的錯誤,好比使用散列類型的命令操做集合類型的鍵,這種錯誤在實際執行以前的Redis是沒法發現的,因此在事務裏這樣的命令是會被Redis的接受並執行的。若是事務裏的一條命令出現了運行錯誤,事務裏其餘的命令依然會繼續執行
        > multi
        > set key 1
        > sadd key 2
        > set key 3
        > exec
            1)OK
            2)(錯誤)WRONGTYPE針對保存錯誤類型值的鍵的操做
            3)OK
        > get key --- 「3」

5,觀看命令:能夠監控一個或多個鍵,一旦其中一個鍵被修改(或刪除),以後的事務就不會執行監控一直持續到EXEC命令(事務中的命令是在EXEC以後才執行的,因此在多命令後能夠修改watch監控的鍵值)
    > set key 1 --- OK
    > watch key --- OK
    > set key 2 --- OK
    > multi --- OK
    > set key 3 --- QUEUED
    > exec ---(nil)
    >得到密鑰---「2」

    def incr($ key):        watch $ key         $ value = GET $ key         若是不是$ value:            $ value = 0         $ value = $ value + 1     MULTI     SET $ key,$ value         resule = EXEC     return resule [0]

相關文章
相關標籤/搜索