您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關redis事務的用法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Redis事務
MULTI, EXEC, DISCARD and WATCH 是Redis事務的基礎。用來顯式開啟并控制一個事務,它們允許在一個步驟中執行一組命令。并提供兩個重要的保證:
● 事務中的所有命令都會被序列化并按順序執行。在執行Redis事務的過程中,不會出現由另一個客戶端發出的請求。這保證 命令隊列 作為一個單獨的原子操作被執行。
● 隊列中的命令要么全部被處理,要么全部被忽略。EXEC命令觸發事務中所有命令的執行,因此,當客戶端在事務上下文中失去與服務器的連接,
● 如果發生在調用MULTI命令之前,則不執行任何commands;
● 如果在此之前EXEC命令被調用,則所有的commands都被執行。
同時,redis使用AOF(append-only file),使用一個額外的write操作將事務寫入磁盤。如果發生宕機,進程奔潰等情況,可以使用redis-check-aof tool 修復append-only file,使服務正常啟動,并恢復部分操作。(推薦:《Redis視頻教程》)
用法
使用MULTI命令顯式開啟Redis事務。 該命令總是以OK回應。此時用戶可以發出多個命令,Redis不會執行這些命令,而是將它們排隊。EXEC被調用后,所有的命令都會被執行。而調用DISCARD可以清除事務中的commands隊列并退出事務。
以下示例以原子方式,遞增鍵foo和bar。
>MULTI OK >INCR foo QUEUED >INCR bar QUEUED >EXEC 1)(整數)1 2)(整數)1
從上面的命令執行中可以看出,EXEC返回一個數組,其中每個元素都是事務中單個命令的返回結果,而且順序與命令的發出順序相同。
當Redis連接處于MULTI請求的上下文中時,所有命令將以字符串QUEUED(從Redis協議的角度作為狀態回復發送)作為回復,并在命令隊列中排隊。只有EXEC被調用時,排隊的命令才會被執行,此時才會有真正的返回結果。
關于redis事務的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。