中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis事務怎么用

發布時間:2021-11-11 09:56:47 來源:億速云 閱讀:144 作者:小新 欄目:數據庫

小編給大家分享一下Redis事務怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

事務:
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> sadd "user:1:state" 1
QUEUED
127.0.0.1:6379> SADD "user:2:state" 2
QUEUED
127.0.0.1:6379> EXEC
1) (integer) 1
2) (integer) 1

由MULTI發起事務,后面的sadd命令來實現關注和被關注的操作,redis并沒有執行這些命令,而是返回QUEUED表示這兩條命令已經進入等待執行的事務隊列中。
當exec之后告訴redis將等待的食物隊列中的所有命令按照發送順序依次執行。exec的返回值順序和命令的順序相同。


1.語法錯誤:
語法錯誤指命令不存在或者命令的參數個數不對,如下:
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set name Mike
QUEUED
127.0.0.1:6379> errorcommand name
(error) ERR unknown command 'errorcommand'
127.0.0.1:6379> EXEC
(error) EXECABORT Transaction discarded because of previous errors.
由于存在不正確的命令,redis直接返回錯誤把整個事務discard了。它連語法正確的都不會執行,如下:
127.0.0.1:6379> MGET name
1) (nil)


2.運行錯誤:運行錯誤是命令執行時出現的錯誤,比如使用了錯誤命令操作數據類型。
這種錯誤redis會繼續執行,redis無法發現錯誤。
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set name hello
QUEUED
127.0.0.1:6379> SADD name 3
QUEUED
127.0.0.1:6379> SET name "abc"
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
3) OK
127.0.0.1:6379> GET name
"abc"

這種錯誤只能依賴程序員去把握與檢查錯誤。


WATCH命令:監控一個或多個鍵,一但其中某個鍵值被修改,之后的事務就不會執行。監控會一直持續到exec命令。
127.0.0.1:6379> SET key 1
OK
127.0.0.1:6379> WATCH key
OK
127.0.0.1:6379> SET key 2
OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SET key 3
QUEUED
127.0.0.1:6379> EXEC
(nil)    // 返回nil,說明監視的ticket已經改變了,事務就取消了.
127.0.0.1:6379> GET key
"2"

發布/訂閱 分別發布者和訂閱者,訂閱者可以訂閱一個或者若干個頻道,而發布者可以向指定的頻道發布消息。所有訂閱此頻道的訂閱者都會受到此消息
發布消息:
127.0.0.1:6379> PUBLISH newsChannel "good morning news report"
(integer) 0
暫時沒有訂閱者返回為0

訂閱消息:
127.0.0.1:6379> SUBSCRIBE newsChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"    //subscribe 表示訂閱成功的反饋。第二個值是成功訂閱的頻道名,第三個值是當前客戶端訂閱的頻道數量。
如果是message 這個類型回復是我們關心的,表示接收到的消息,第二個值表示產生消息的頻道名稱。第三個值是消息的內容。
unsubscribe 取消訂閱某個頻道,第二個值是對應的頻道名稱,第三個值是當前客戶端訂閱的頻道數量。
2) "newsChannel"
3) (integer) 1
利用publish 再次發布消息:
127.0.0.1:6379> PUBLISH newsChannel "News 2"
(integer) 1
訂閱頻道:
127.0.0.1:6379> SUBSCRIBE newsChannel
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "newsChannel"
3) (integer) 1
^[[A1) "message"
2) "newsChannel"
3) "News 2"
可以按照正則表達式訂閱多個頻道:
127.0.0.1:6379> PSUBSCRIBE news*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news*"
3) (integer) 1

PSUBSCRIBE去訂閱以news開頭任意字符結尾的頻道.
127.0.0.1:6379> PSUBSCRIBE news*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "news*"
3) (integer) 1
1) "pmessage"
2) "news*"
3) "newsChannel"
4) "News 3"

以上是“Redis事務怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天峻县| 且末县| 岳西县| 玛曲县| 潞城市| 四会市| 老河口市| 上饶县| 通海县| 平果县| 卓尼县| 布尔津县| 竹北市| 温宿县| 宜春市| 尉犁县| 徐州市| 惠来县| 沂源县| 桂平市| 那坡县| 三穗县| 兰州市| 叶城县| 长治市| 印江| 仪陇县| 固原市| 通海县| 麦盖提县| 丰原市| 武强县| 西乡县| 防城港市| 望谟县| 重庆市| 上杭县| 南丰县| 定州市| 临武县| 巴里|