------------------- redis訂閱和發布模式-------------------
1,概念
redis發布訂閱發布/訂閱)是一種訊息通訊模式:
傳送者(酒館)傳送訊息,
訂閱者(子)接收訊息。
redis的客戶端可以訂閱任意數量的頻道。
2,訂閱頻道:訂閱個指定頻道的資訊
3,發布頻道訊息:將資訊訊息傳送到指定的頻道頻道
4,應用場景
2,即使通訊系統
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的的最小執行單位,乙個事務中的命令要麼都執行,要麼都不執行。
2,事務的兩種屬性
1,事務是乙個單獨的隔離操作:事務中的所有命令都會序列化,按順序的執行事務在執行的過程中
,不會被其他客戶端傳送過來的命令請求所
打斷。2,redis事務是原子。原子意味著要什麼所有的命令都執行,要麼都不執行。
3,事務從開始到執行經歷的三個階段
1,開始事務:多
>多 - 確定
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]
Redis 發布和訂閱
發布與訂閱 又稱pub sub 訂閱者 listener 負責訂閱頻道 channel 傳送者 publisher 負責向頻道傳送二進位制字串訊息 binary string message 每當有訊息被傳送給指定頻道的時候,頻道都所有訂閱者都會收到訊息。redis提供都5個發布訂閱命令 命令描述 ...
Redis 發布和訂閱
一 概述 1 發布和訂閱是一種訊息通訊模式。2 優點 使訊息訂閱者和訊息發布者耦合度降低,類似設計模式中的觀察者模式。二 發布和訂閱 訂閱命令 訂閱乙個或多個頻道 返回值 value 1 為 subcribe 表示訂閱成功,value 2 為訂閱的頻道名稱,value 3 表示當前訂閱的頻道個數 s...
Redis發布訂閱模式
publish subscribe 發布訂閱模式的原理 包含兩個角色,乙個是發布者,乙個是訂閱者 訂閱者可以訂閱乙個或者多個頻道channel 發布者可以向指定頻道發布資訊 通過publish發布訊息 publish channel message publish channel1.1 maizie...