天天看點

事務-redis事務介紹和基本操作

什麼是事務

Redis執行指令過程中,多條連續執行的指令被幹擾,打斷,插隊

redis事務就是一個指令執行的隊列,将一系列預定義指令包裝成一個整體(一個隊列)。當執行時,一次性 按照添加順序依次執行,中間不會被打斷或者幹擾。

一個隊列中,一次性、順序性、排他性的執行一系列指令

事務-redis事務介紹和基本操作

事務的基本操作

  開啟事務

multi      

作用:設定事務的開啟位置,此指令執行後,後續的所有指令均加入到事務中

 執行事務

exec      

作用:設定事務的結束位置,同時執行事務。與multi成對出現,成對使用

注意:加入事務的指令暫時進入到任務隊列中,并沒有立即執行,隻有執行exec指令才開始執行

 取消事務

discard      

作用:終止目前事務的定義,發生在multi之後,exec之前 

事務-redis事務介紹和基本操作

事務的注意事項

定義事務的過程中,指令格式輸入錯誤怎麼辦?

 文法錯誤:指指令書寫格式有誤

 處理結果:如果定義的事務中所包含的指令存在文法錯誤,整體事務中所有指令均不會執行。包括那些文法正确的指令。

定義事務的過程中,指令執行出現錯誤怎麼辦?

 運作錯誤:指指令格式正确,但是無法正确的執行。例如對list進行incr操作

 處理結果:能夠正确運作的指令會執行,運作錯誤的指令不會被執行

注意;已經執行完畢的指令對應的資料不會自動復原,需要程式員自己在代碼中實作復原

手動進行事務復原

  • 單資料:string
  • 多資料:hash、list、set、zset 
  • 單資料:直接set(注意周邊屬性,例如時效) 
  • 多資料:修改對應值或整體克隆複制

繼續閱讀